MBD-PT 2023 Social Network Analysis


IMDB Movie Network Anylsis

image.png

Table of contents

  • 0. Description & General Objective
  • 1. Import Libraries)
  • 2. Import Datasets
  • 3. Graph Creation
    • 3.1) Create Graph in igraph
    • 3.2 Create Graph in Networkx
  • 4. Summary Statistics
    • 4.1) How many nodes are there?
    • 4.2) How many edges are there?
    • 4.3) Add Statistics
  • 5. Degree Distribution
    • 5.1) How does this distributions look like?
    • 5.2) What is the maximum degree?
    • 5.3) What is the minimum degree?
  • 6.Network Diameter and Average Path Length
    • 6.1) What is the diameter of the graph?
    • 6.2) What is the avg path length of the graph?)
  • 7.Node importance: Centrality measures
    • 7.1) Distribution of number of movies
    • 7.2 Number of Genres of the actors
    • 7.3) Obatin Vectors with degree, betweeness and closeness )
  • 8.Degree, Betweeness & Closeness
    • 8.1) Who is the actor with highest degree centrality?
    • 8.2) How do you explain the high degree of the top-20 list??
    • 8.3) Who is the actor with highest betweenes?
    • 8.4) How do you explain the high betweenness of the top-20 list?
    • 8.5) Who is the actor with highest closeness centrality?
    • 8.6) How do you explain the high closeness of the top-20 list?
  • 9.Community Detection

0.Instructions

On this first assignment, applying the basic functions of the Igraph package is required. The following datasets are going to be used:

  • Actors dataset - undirected graph - : For the 2005 Graph Drawing conference a data set was provided of the IMDB movie database. We will use a reduced version of this dataset, which derived all actor-actor collaboration edges where the actors co-starred in at least 2 movies together between 1995 and 2004.

You have to complete the code chunks in this document but also analyze the results, extract insights and answer the short questions. Fill the CSV attached with your answers, sometimes just the number is enough, some others just a small sentence or paragraph. Remember to change the header with your email.

In your submission please upload both this document in HTML and the CSV with the solutions.

1. Import Libraries

In [38]:
!pip install jupyter_contrib_nbextensions
!pip install python-igraph
!apt-get install libcairo2-dev libjpeg-dev libgif-dev
!pip install pycairo
!pip install cairocffi
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Requirement already satisfied: jupyter_contrib_nbextensions in /usr/local/lib/python3.9/dist-packages (0.7.0)
Requirement already satisfied: tornado in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (6.2)
Requirement already satisfied: traitlets>=4.1 in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (5.7.1)
Requirement already satisfied: notebook>=6.0 in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (6.4.8)
Requirement already satisfied: jupyter-contrib-core>=0.3.3 in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (0.4.2)
Requirement already satisfied: lxml in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (4.9.2)
Requirement already satisfied: nbconvert>=6.0 in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (6.5.4)
Requirement already satisfied: jupyter-nbextensions-configurator>=0.4.0 in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (0.6.1)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (5.3.0)
Requirement already satisfied: jupyter-highlight-selected-word>=0.1.1 in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (0.2.0)
Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.9/dist-packages (from jupyter_contrib_nbextensions) (0.2.0)
Requirement already satisfied: setuptools in /usr/local/lib/python3.9/dist-packages (from jupyter-contrib-core>=0.3.3->jupyter_contrib_nbextensions) (67.6.1)
Requirement already satisfied: pyyaml in /usr/local/lib/python3.9/dist-packages (from jupyter-nbextensions-configurator>=0.4.0->jupyter_contrib_nbextensions) (6.0)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (4.11.2)
Requirement already satisfied: bleach in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (6.0.0)
Requirement already satisfied: jinja2>=3.0 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (3.1.2)
Requirement already satisfied: pygments>=2.4.1 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (2.14.0)
Requirement already satisfied: nbformat>=5.1 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (5.8.0)
Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (0.8.4)
Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (0.4)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (0.2.2)
Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (0.7.3)
Requirement already satisfied: packaging in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (23.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (2.1.2)
Requirement already satisfied: tinycss2 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (1.2.1)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (0.7.1)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.9/dist-packages (from nbconvert>=6.0->jupyter_contrib_nbextensions) (1.5.0)
Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.9/dist-packages (from jupyter-core->jupyter_contrib_nbextensions) (3.2.0)
Requirement already satisfied: nest-asyncio>=1.5 in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (1.5.6)
Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (1.8.0)
Requirement already satisfied: pyzmq>=17 in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (23.2.1)
Requirement already satisfied: ipykernel in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (5.5.6)
Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (21.3.0)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (0.17.1)
Requirement already satisfied: jupyter-client>=5.3.4 in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (6.1.12)
Requirement already satisfied: prometheus-client in /usr/local/lib/python3.9/dist-packages (from notebook>=6.0->jupyter_contrib_nbextensions) (0.16.0)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.9/dist-packages (from jupyter-client>=5.3.4->notebook>=6.0->jupyter_contrib_nbextensions) (2.8.2)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.9/dist-packages (from nbformat>=5.1->nbconvert>=6.0->jupyter_contrib_nbextensions) (4.3.3)
Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.9/dist-packages (from nbformat>=5.1->nbconvert>=6.0->jupyter_contrib_nbextensions) (2.16.3)
Requirement already satisfied: ptyprocess in /usr/local/lib/python3.9/dist-packages (from terminado>=0.8.3->notebook>=6.0->jupyter_contrib_nbextensions) (0.7.0)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.9/dist-packages (from argon2-cffi->notebook>=6.0->jupyter_contrib_nbextensions) (21.2.0)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.9/dist-packages (from beautifulsoup4->nbconvert>=6.0->jupyter_contrib_nbextensions) (2.4)
Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.9/dist-packages (from bleach->nbconvert>=6.0->jupyter_contrib_nbextensions) (1.16.0)
Requirement already satisfied: webencodings in /usr/local/lib/python3.9/dist-packages (from bleach->nbconvert>=6.0->jupyter_contrib_nbextensions) (0.5.1)
Requirement already satisfied: ipython>=5.0.0 in /usr/local/lib/python3.9/dist-packages (from ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (7.34.0)
Requirement already satisfied: decorator in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (4.4.2)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (0.7.5)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (4.8.0)
Requirement already satisfied: backcall in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (0.2.0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (3.0.38)
Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (0.18.2)
Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.9/dist-packages (from ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (0.1.6)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.9/dist-packages (from jsonschema>=2.6->nbformat>=5.1->nbconvert>=6.0->jupyter_contrib_nbextensions) (22.2.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.9/dist-packages (from jsonschema>=2.6->nbformat>=5.1->nbconvert>=6.0->jupyter_contrib_nbextensions) (0.19.3)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=6.0->jupyter_contrib_nbextensions) (1.15.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.9/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=6.0->jupyter_contrib_nbextensions) (2.21)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /usr/local/lib/python3.9/dist-packages (from jedi>=0.16->ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (0.8.3)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.9/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=5.0.0->ipykernel->notebook>=6.0->jupyter_contrib_nbextensions) (0.2.6)
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Requirement already satisfied: python-igraph in /usr/local/lib/python3.9/dist-packages (0.10.4)
Requirement already satisfied: igraph==0.10.4 in /usr/local/lib/python3.9/dist-packages (from python-igraph) (0.10.4)
Requirement already satisfied: texttable>=1.6.2 in /usr/local/lib/python3.9/dist-packages (from igraph==0.10.4->python-igraph) (1.6.7)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libcairo2-dev is already the newest version (1.16.0-4ubuntu1).
libgif-dev is already the newest version (5.1.9-1).
libjpeg-dev is already the newest version (8c-2ubuntu8).
0 upgraded, 0 newly installed, 0 to remove and 24 not upgraded.
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Requirement already satisfied: pycairo in /usr/local/lib/python3.9/dist-packages (1.23.0)
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Requirement already satisfied: cairocffi in /usr/local/lib/python3.9/dist-packages (1.5.0)
Requirement already satisfied: cffi>=1.1.0 in /usr/local/lib/python3.9/dist-packages (from cairocffi) (1.15.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.9/dist-packages (from cffi>=1.1.0->cairocffi) (2.21)
In [39]:
import networkx as nx

import pandas as pd

import matplotlib.pyplot as plt
%matplotlib inline

import io

import igraph as ig
from igraph import Graph, EdgeSeq

import numpy as np

import plotly.graph_objects as go
import plotly.graph_objs as go
import plotly.io as pio
import plotly.express as px
import plotly.subplots as sp

import cairo
import cairocffi as cairo

import statistics

2. Import Dataset

In this section, the goal is loading the datasets given, building the graph and analyzing basics metrics. Include the edge or node attributes you consider.Describe the values provided by summary function on the graph object.

In [40]:
from google.colab import drive
drive.mount('/content/drive')
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
In [41]:
# Read files
#file = '/content/drive/MyDrive/imdb_actors_key_sol (1).csv'
file ='/content/drive/MyDrive/imdb_actors_key_sol (1).csv'


nodes = pd.read_csv(file,sep=';')
nodes.head()
Out[41]:
id ActorName movies_95_04 main_genre genres
0 n15629 Rudder, Michael (I) 12 Thriller Action:1,Comedy:1,Drama:1,Fantasy:1,Horror:1,N...
1 n5026 Morgan, Debbi 16 Drama Comedy:2,Documentary:1,Drama:6,Horror:2,NULL:3...
2 n11252 Bellows, Gil 33 Drama Comedy:6,Documentary:1,Drama:7,Family:1,Fantas...
3 n5150 Dray, Albert 20 Comedy Comedy:6,Crime:1,Documentary:1,Drama:4,NULL:5,...
4 n4057 Daly, Shane (I) 18 Drama Comedy:2,Crime:1,Drama:7,Horror:1,Music:1,Musi...
In [ ]:
# Locally Read the csv file into dataframe 

#3df = pd.read_csv('/Users/stephaniegessler/Downloads/imdb_actors_key_sol (1).csv',sep=';')
#df.head()
In [ ]:
# locally Read the csv file into dataframe 
#df_key= pd.read_csv('/Users/stephaniegessler/Downloads/imdb_actor_edges_sol (1).csv',sep=';')
#df_key.head()
In [42]:
# Read files

#file = 'drive/MyDrive/imdb_actor_edges_sol (1).csv'
file = '/content/drive/MyDrive/imdb_actor_edges_sol (1).csv'
edges = pd.read_csv(file,sep=';')
edges = edges.rename(columns={'from': 'source', 'to': 'target'})
edges.head()
Out[42]:
source target weight
0 n17776 n17778 6
1 n5578 n9770 3
2 n5578 n929 2
3 n5578 n9982 2
4 n1835 n6278 2

Inverse Weight

In graph theory, the weight of an edge is typically used to represent the cost or distance between two nodes. When computing the shortest path between two nodes in a graph, the algorithm tries to find the path with the minimum weight.

However, in some cases, it may be more intuitive to think of a larger weight as indicating a stronger connection between two nodes. In these cases, taking the inverse of the weight 1/weight can be useful. This way, larger weights result in smaller values, and vice versa.

If we are modeling the social network of the actors where the weight of an edge represents the strength of a relationship between two people, a larger weight could indicate a stronger relationship since they worked together in more movies together. In this case, taking the inverse of the weight would mean that larger weights, the stronger relationship would result in shorter distances in the graph, which would align more with our intuition.

In [43]:
# create a new dataframe for the edges
edges_inverse = edges[['source', 'target', 'weight']].copy()

# calculate the inverse of the weight column
edges_inverse ['weight'] = edges['weight'].apply(lambda x: 1/x)

edges_inverse.head()
Out[43]:
source target weight
0 n17776 n17778 0.166667
1 n5578 n9770 0.333333
2 n5578 n929 0.500000
3 n5578 n9982 0.500000
4 n1835 n6278 0.500000
In [ ]:
#statistics of df
nodes.describe()
Out[ ]:
movies_95_04
count 17577.000000
mean 20.545258
std 20.686926
min 10.000000
25% 12.000000
50% 15.000000
75% 22.000000
max 540.000000

There are 17577 nodes in the graph but we will see this later. On average, each node is in 20.54 movies from the period 1995-2004. The standard deviation of the number of movies each node is in is 20.69, indicating a relatively wide range of values as the minimum number of movies a node is in is 10, while the maximum is 540.

In [ ]:
value_counts =nodes['main_genre'].value_counts()

print(value_counts)
Drama        7302
Comedy       2928
Adult        1811
Romance      1027
Thriller      947
Crime         711
Music         631
Action        537
Sci-Fi        421
Family        359
Animation     284
Horror        171
Fantasy       137
War            69
Mystery        66
Adventure      63
Western        24
Musical        21
Name: main_genre, dtype: int64

The top three movies in the main genre are Drama, Comedy and Adult for most actors.

17577 actors are in the dataset, which can be validated counting the Id numbers

In [ ]:
value_counts = nodes.groupby(['id']).size().count()
value_counts 
Out[ ]:
17577

For further anylyis the genres are Split into seperate columns, we keep also NULL as there are high number of actors which indenticates in genre NULL.

In [44]:
# Split the 'genres' column by ',' to create separate columns for each genre
genres_df = nodes['genres'].str.split(',', expand=True)
# Extracts the unique genre keys  and splits the genre count by ":". Flatten helps to make a single array and set makes it unique 
genres_keys = set(genres_df.apply(lambda x: x.str.split(':', expand=True)[0]).values.flatten())
#Remove None and Null 
genres_keys.remove(None)
#genres_keys.remove('NULL')
print(genres_keys)


df_with_genres = nodes.copy().drop('genres', axis=1)
# The function extracts the count of a specific genre in a string of genres and their respective counts
def get_genre_count(x, genre):
    genre_counts = x.split(',')
    for genre_count in genre_counts:
        if genre_count.split(':')[0] == genre:
            return genre_count.split(':')[1]
    return 0

for genre in genres_keys:
    df_with_genres[genre] = nodes['genres'].apply(lambda x: get_genre_count(x, genre))

df_with_genres.head()
{'Music', 'Animation', 'Action', 'Crime', 'Horror', 'Comedy', 'Adult', 'Documentary', 'Drama', 'Romance', 'Sci-Fi', 'Thriller', 'Western', 'Mystery', 'NULL', 'Family', 'Short', 'Fantasy', 'Adventure', 'War', 'Musical'}
Out[44]:
id ActorName movies_95_04 main_genre Music Animation Action Crime Horror Comedy Adult Documentary Drama Romance Sci-Fi Thriller Western Mystery NULL Family Short Fantasy Adventure War Musical
0 n15629 Rudder, Michael (I) 12 Thriller 0 0 1 0 1 1 0 0 1 1 1 2 0 0 2 0 0 1 0 1 0
1 n5026 Morgan, Debbi 16 Drama 0 0 0 0 2 2 0 1 6 2 0 0 0 0 3 0 0 0 0 0 0
2 n11252 Bellows, Gil 33 Drama 0 0 0 0 1 6 0 1 7 6 0 4 0 2 2 1 2 1 0 0 0
3 n5150 Dray, Albert 20 Comedy 0 0 0 1 0 6 0 1 4 1 0 1 0 0 5 0 1 0 0 0 0
4 n4057 Daly, Shane (I) 18 Drama 1 0 0 1 1 2 0 0 7 1 0 4 0 0 0 0 0 0 0 0 1

Min weight is 2 and the maxium is 118 weight, but the mean is 3.18 as weight for the edges.

In [ ]:
edges.describe()
Out[ ]:
weight
count 287074.000000
mean 3.281206
std 2.991388
min 2.000000
25% 2.000000
50% 2.000000
75% 3.000000
max 118.000000

Based on these results, we can conclude that the majority of edges have a weight of 2 or 3, with 50% quantiles of the edges having a weight of 2. There are some edges with a high weight (up to 118), but these are likely to be outliers. Overall, the weights of the edges in the graph seem to be relatively low, indicating that there are not many strong connections between the nodes.

In [ ]:
value_counts = edges.groupby(['source', 'target']).size().count()

print(value_counts)
287074

3. Create Graphs

3. Create Graph in igraph

In [45]:
g = ig.Graph()

g = Graph.DataFrame(edges=edges, vertices=df_with_genres, directed=False, use_vids=False)
In [46]:
g_inv = ig.Graph()

g_inv = Graph.DataFrame(edges=edges_inverse, vertices=df_with_genres, directed=False, use_vids=False)
In [ ]:
print(g.summary())
IGRAPH UNW- 17577 287074 -- 
+ attr: Action (v), ActorName (v), Adult (v), Adventure (v), Animation (v), Comedy (v), Crime (v), Documentary (v), Drama (v), Family (v), Fantasy (v), Horror (v), Music (v), Musical (v), Mystery (v), NULL (v), Romance (v), Sci-Fi (v), Short (v), Thriller (v), War (v), Western (v), main_genre (v), movies_95_04 (v), name (v), weight (e)
  • The first line specifies that the graph is undirected (UNW) and contains 17,577 vertices (nodes) and 287,074 edges.
  • The attr lines indicate the attributes associated with each vertex (node) in the graph. Each attribute represents a movie genre or a property of the actor like the actor's name.
  • The weight attribute associated with each edge is also shown in the output.
In [ ]:
ig.plot(g, bbox=(1000, 600),vertex_color='green', target='myplot.png')

image.png

In the graph you see that not all nodes are connected (disconnected graph). In a disconnected graph, there are one or more sets of nodes that have no edges connecting them to any other nodes in the graph. This creates isolated clusters or components of nodes.

Two groups of actors who have no actors link in common, they would form two disconnected components in the graph.

3.2 Create Graph in Networkx

In [ ]:
# create an empty NetworkX graph
G = nx.Graph()

# add nodes to the graph
G.add_nodes_from(nodes['id'])

# add edges to the graph with weights
for index, row in edges.iterrows():
    G.add_edge(row['source'], row['target'], weight=row['weight'])
In [ ]:
from pyvis.network import Network
# create a PyVis network object
net = Network(height='750px', width='100%', bgcolor='#222222', font_color='white')
net.from_nx(G)
net.show('mygraph.html')
In [ ]:
# Iterate over the rows of the nodes dataframe
for i, row in nodes.iterrows():
    # Add the node to the graph with attributes
    G.add_node(row['id'], ActorName=row['ActorName'], movies_95_04=row['movies_95_04'], main_genre=row['main_genre'], genres=row['genres'])

The connected components gives you the number of subgraphs, where there is a path between any two nodes. Since we have 19 subgraphs, all nodes in a connected component can be reached from any other node in the same component. If a graph has only one connected component, then it is a connected graph. If a graph has more than one connected component, then it is a disconnected graph.

In [ ]:
nx.number_connected_components(G)
Out[ ]:
19
In [ ]:
# Get the connected components
components = g.clusters()

# Print the size and membership of each component
for i, c in enumerate(components):
    print(f"Component {i} has size {len(c)} and contains vertices {c}")
Component 0 has size 17455 and contains vertices [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1494, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6730, 6731, 6732, 6733, 6734, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10984, 10985, 10986, 10987, 10988, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12732, 12733, 12735, 12736, 12737, 12738, 12739, 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12748, 12749, 12750, 12751, 12752, 12753, 12754, 12755, 12757, 12758, 12759, 12760, 12761, 12762, 12764, 12765, 12766, 12767, 12768, 12769, 12770, 12771, 12773, 12774, 12775, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, 12980, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, 13336, 13337, 13338, 13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 13355, 13356, 13357, 13358, 13359, 13361, 13362, 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387, 13389, 13390, 13391, 13392, 13393, 13394, 13395, 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409, 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427, 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451, 13452, 13453, 13454, 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465, 13466, 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, 13479, 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, 13491, 13492, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927, 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14207, 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16045, 16046, 16047, 16048, 16049, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17357, 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, 17431, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17468, 17469, 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576]
Component 1 has size 22 and contains vertices [71, 85, 756, 873, 896, 959, 1493, 2631, 3075, 3269, 6282, 6729, 7036, 7044, 7657, 12094, 13262, 13312, 14138, 14444, 15967, 16031]
Component 2 has size 23 and contains vertices [459, 2176, 4071, 5277, 5552, 5842, 6428, 7907, 8904, 9428, 9789, 9813, 10451, 10989, 11593, 13335, 13360, 14130, 15054, 15177, 16883, 17127, 17543]
Component 3 has size 4 and contains vertices [550, 2815, 15166, 15449]
Component 4 has size 33 and contains vertices [607, 1870, 2596, 2632, 4850, 5682, 6735, 6818, 6992, 8052, 8084, 8210, 9117, 9979, 10948, 10983, 11020, 11176, 11851, 12004, 12716, 12734, 13241, 13388, 14466, 14622, 14876, 15145, 15892, 16044, 16339, 17085, 17356]
Component 5 has size 2 and contains vertices [1495, 11234]
Component 6 has size 3 and contains vertices [1814, 14828, 17467]
Component 7 has size 11 and contains vertices [2109, 2320, 2567, 5377, 6659, 7288, 9514, 12756, 13875, 16262, 17103]
Component 8 has size 2 and contains vertices [2461, 2480]
Component 9 has size 3 and contains vertices [2586, 4062, 12763]
Component 10 has size 2 and contains vertices [2838, 3815]
Component 11 has size 2 and contains vertices [3910, 12772]
Component 12 has size 2 and contains vertices [3997, 7258]
Component 13 has size 2 and contains vertices [6281, 15732]
Component 14 has size 3 and contains vertices [6367, 8211, 13001]
Component 15 has size 2 and contains vertices [6710, 11439]
Component 16 has size 2 and contains vertices [9693, 12981]
Component 17 has size 2 and contains vertices [12747, 16050]
Component 18 has size 2 and contains vertices [14206, 17432]
<ipython-input-33-b0350cd9ff9f>:2: DeprecationWarning:

Graph.clusters() is deprecated; use Graph.connected_components() instead

4. Summary Statistics

4.1. How many nodes are there?

4.2. How many edges are there?

Overall the entire graph consists of 17577 nodes and 28704 edges, where subgraph 1 has 99% of the nodes and edges.

In [ ]:
# Compute some basic metrics of the entire graph 
print(g.summary())
print("Number of nodes:", len(g.vs))
print("Number of edges:", len(g.es))
IGRAPH UNW- 17577 287074 -- 
+ attr: Action (v), ActorName (v), Adult (v), Adventure (v), Animation (v), Comedy (v), Crime (v), Documentary (v), Drama (v), Family (v), Fantasy (v), Horror (v), Music (v), Musical (v), Mystery (v), NULL (v), Romance (v), Sci-Fi (v), Short (v), Thriller (v), War (v), Western (v), main_genre (v), movies_95_04 (v), name (v), weight (e)
Number of nodes: 17577
Number of edges: 287074
In [ ]:
#Now looking at the subgraphs create the list of subgraphs
subgraphs = g.decompose()
In [ ]:
# create the list of subgraphs for the inverse
subgraphs_inv = g_inv.decompose()
In [57]:
for i, sg in enumerate(subgraphs):
    print(f"Subgraph {i+1}:")
    print(f"Number of nodes: {sg.vcount()}")
    print(f"Number of edges: {sg.ecount()}")
Subgraph 1:
Number of nodes: 17455
Number of edges: 286911
Subgraph 2:
Number of nodes: 22
Number of edges: 30
Subgraph 3:
Number of nodes: 23
Number of edges: 28
Subgraph 4:
Number of nodes: 4
Number of edges: 6
Subgraph 5:
Number of nodes: 33
Number of edges: 55
Subgraph 6:
Number of nodes: 2
Number of edges: 1
Subgraph 7:
Number of nodes: 3
Number of edges: 2
Subgraph 8:
Number of nodes: 11
Number of edges: 27
Subgraph 9:
Number of nodes: 2
Number of edges: 1
Subgraph 10:
Number of nodes: 3
Number of edges: 3
Subgraph 11:
Number of nodes: 2
Number of edges: 1
Subgraph 12:
Number of nodes: 2
Number of edges: 1
Subgraph 13:
Number of nodes: 2
Number of edges: 1
Subgraph 14:
Number of nodes: 2
Number of edges: 1
Subgraph 15:
Number of nodes: 3
Number of edges: 2
Subgraph 16:
Number of nodes: 2
Number of edges: 1
Subgraph 17:
Number of nodes: 2
Number of edges: 1
Subgraph 18:
Number of nodes: 2
Number of edges: 1
Subgraph 19:
Number of nodes: 2
Number of edges: 1

Subgraph 1 has the most edges and nodes,the remaining have few or just single edges.

In [ ]:
#identify the biggest subgraph 
largest_subgraph = max(subgraphs, key=lambda subgraph: len(subgraph.vs))
print("Largest subgraph index:", subgraphs.index(largest_subgraph))
print("Number of vertices in largest subgraph:", len(largest_subgraph.vs))
Largest subgraph index: 0
Number of vertices in largest subgraph: 17455

4.3. Add Statistics

Average Degree

In [78]:
# Iterate over subgraphs and calculate their average degree
for i, subgraph in enumerate(subgraphs):
    avg_degree = sum(subgraph.degree())/len(subgraph.degree())
    print(f"The average degree of subgraph {i+1} is: {avg_degree}")
The average degree of subgraph 1 is: 32.87436264680607
The average degree of subgraph 2 is: 2.727272727272727
The average degree of subgraph 3 is: 2.4347826086956523
The average degree of subgraph 4 is: 3.0
The average degree of subgraph 5 is: 3.3333333333333335
The average degree of subgraph 6 is: 1.0
The average degree of subgraph 7 is: 1.3333333333333333
The average degree of subgraph 8 is: 4.909090909090909
The average degree of subgraph 9 is: 1.0
The average degree of subgraph 10 is: 2.0
The average degree of subgraph 11 is: 1.0
The average degree of subgraph 12 is: 1.0
The average degree of subgraph 13 is: 1.0
The average degree of subgraph 14 is: 1.0
The average degree of subgraph 15 is: 1.3333333333333333
The average degree of subgraph 16 is: 1.0
The average degree of subgraph 17 is: 1.0
The average degree of subgraph 18 is: 1.0
The average degree of subgraph 19 is: 1.0

The average degree is a measure of the average number of edges connected to each node in the subgraph.

The output shows the results of the calculation for each subgraph. The interpretation of the results is that some subgraphs have a relatively high average degree, such as subgraph 1 with an average degree of 32.87, while others have a very low average degree, such as subgraphs 6, 9, 11, 12, 13, 14, 16, 17, 18, and 19, which all have an average degree of 1.0. This suggests that the nodes in these subgraphs have very few edges compared to the nodes in subgraph 1. The analysis of average degree in subgraphs could help to identify important subgraphs in the network.

Basic Statistics: Density, Triangles, Modularity, Eccentricity, Assortativity, Clique Number

In [58]:
for i, sg in enumerate(subgraphs):
    print(f"Subgraph {i+1}:")
    print(f"Density: {sg.density()}")
    print(f"Triangles: {len(sg.cliques(min=3, max=3))}")
    print(f"Modularity: {sg.modularity(sg.community_fastgreedy().as_clustering())}")
    print(f"Eccentricity: {max(sg.eccentricity())}")
    print(f"Assortativity: {sg.assortativity_degree(directed=False)}")
    print(f"Clique Number: {sg.clique_number()}")
    print("------------------------------")
Subgraph 1:
Density: 0.0018834858855738552
Triangles: 3547243
Modularity: 0.7878293538160316
Eccentricity: 16.0
Assortativity: 0.29305462580433556
Clique Number: 143
------------------------------
Subgraph 2:
Density: 0.12987012987012986
Triangles: 8
Modularity: 0.48444444444444446
Eccentricity: 8.0
Assortativity: -0.07816711590296527
Clique Number: 4
------------------------------
Subgraph 3:
Density: 0.1106719367588933
Triangles: 1
Modularity: 0.49298469387755095
Eccentricity: 6.0
Assortativity: -0.2822545134302065
Clique Number: 3
------------------------------
Subgraph 4:
Density: 1.0
Triangles: 4
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 4
------------------------------
Subgraph 5:
Density: 0.10416666666666667
Triangles: 15
Modularity: 0.4907438016528925
Eccentricity: 8.0
Assortativity: 0.1029774322017813
Clique Number: 4
------------------------------
Subgraph 6:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 7:
Density: 0.6666666666666666
Triangles: 0
Modularity: 0.0
Eccentricity: 2.0
Assortativity: -1.0
Clique Number: 2
------------------------------
Subgraph 8:
Density: 0.4909090909090909
Triangles: 34
Modularity: 0.32853223593964337
Eccentricity: 4.0
Assortativity: 0.8341862845445241
Clique Number: 6
------------------------------
Subgraph 9:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 10:
Density: 1.0
Triangles: 1
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 3
------------------------------
Subgraph 11:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 12:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 13:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 14:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 15:
Density: 0.6666666666666666
Triangles: 0
Modularity: 0.0
Eccentricity: 2.0
Assortativity: -1.0
Clique Number: 2
------------------------------
Subgraph 16:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 17:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 18:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
Subgraph 19:
Density: 1.0
Triangles: 0
Modularity: 0.0
Eccentricity: 1.0
Assortativity: nan
Clique Number: 2
------------------------------
  • Density:A measure of how well connected the nodes are in a graph. It is defined as the ratio of the number of edges in the graph to the maximum number of edges possible in a graph with the same number of nodes.The density of a graph can range from 0 to 1, where a density of 0 means that there are no edges in the graph, and a density of 1 means that every possible edge is present in the graph.In general, a higher density can indicate a more connected and cohesive network, while a lower density can indicate a more sparse or fragmented network. However, the interpretation can vary depending on the specific application and the characteristics of the graph. As you can see subgraph 1 is very low connected due to the big network it has

  • Triangle count for each subgraph, which is the number of cycles of length 3 in the graph. It is an important metric for measuring the level of connectivity between nodes in a graph, and is related to the concept of clustering.From the output, we can see that the largest subgraph (Subgraph 1) has a low density, meaning that it is relatively sparse, but it has a high number of triangles, indicating a high level of clustering among the nodes. In contrast, some of the smaller subgraphs have a higher density, but a lower number of triangles, suggesting a lower level of clustering.

  • Modularity: A measure of the density of links within modules or communities in the graph. A modularity of 0 indicates that the graph is random, whereas a modularity of 1 indicates that the graph is completely modular. In this case, the subgraph 1 has a high modularity of 0.8, indicating that the nodes are densly connected and for the other subgraphs are not organized into distinct communities.

  • Eccentricity: The maximum distance between a node and all other nodes in the subgraph. In Subgraph 1, the maximum distance is 16, which means that the subgraph is relatively large and spread out, which some nodes far apart. In comparison to the others with 1 are directly connected.

  • Assortativity: This measures the degree to which nodes in the subgraph tend to be connected to other nodes with a similar degree. A value of 0.293 suggests that there is some tendency for nodes in subgraph 1 to be connected to other nodes with a similar degree, but it is not a very strong effect

  • Clique Number: This is the size of the largest clique (fully connected subgraph) within the subgraph 1. A value of 143 suggests that there is a very large clique within this subgraph, which may indicate the presence of a highly connected group of nodes, while the other graohs are very low in number e.g of 2 suggest the largest clique consists of two nodes.

Basic Statictis by vertices: Degree, Betweeness, pagerank, Eigenvector, closeness with inverse weight and without weight

  • Weight is an important factor in measuring the closeness between two nodes because it takes into account the strength of the connection between them. In a weighted graph, the closer two nodes are, the higher their weight is, indicating a stronger connection between them.

  • Weight also affects the calculation of Betweenness centrality, which measures the importance of a node in terms of the number of shortest paths that pass through it. If a weighted graph has high-weight edges, then the betweenness centrality of nodes that are on those edges will be higher than the nodes that are on low-weight edges.

  • Similarly, the impact of weight on the PageRank algorithm, which measures the importance of nodes in a network based on the number and quality of links to them. In a weighted graph, the PageRank of a node that is connected to high-weight nodes will be higher than that of a node that is connected to low-weight nodes.

  • Weight also affects the calculation of Eigenvector centrality, which measures the importance of a node based on its connections to other important nodes in the network. In a weighted graph, a node that is connected to high-weight nodes will have a higher eigenvector centrality than a node that is connected to low-weight nodes.

  • Weight is also an important factor in measuring the closeness of nodes in a graph. In a weighted graph, the closeness between two nodes takes into account the weight of the edges connecting them, which means that nodes that are connected by high-weight edges will have a smaller distance between them than nodes that are connected by low-weight edges.

  • Coreness: A measure of the level of connectedness of the nodes in the subgraph, where nodes with a higher coreness value are more strongly connected to other nodes in the subgraph, no weight measure is here needed.

In [47]:
# Calculate the degree, betweenness centrality, pagerank, eigenvector centrality, and closeness centrality 
#and use for the one the inverse graph since we want to display the relationship correctly
#degree = g_inv.degree(directed =False)
betweenness = g_inv.betweenness(weights='weight', directed =False, cutoff=None)
pagerank = g_inv.pagerank(weights='weight',directed =False)
eigenvector = g_inv.eigenvector_centrality(weights='weight',directed =False)
closeness = g_inv.closeness(weights='weight', normalized=True, mode= "all",vertices= g_inv.vs)

# Add the calculated metrics to the node dataframe
#df_with_genres['degree'] = degree
df_with_genres['betweenness_weigth'] = betweenness
df_with_genres['pagerank_weigth'] = pagerank
df_with_genres['eigenvector_weight'] = eigenvector
df_with_genres['closeness_weight'] = closeness

# Add a column with the neighbors for each node
neighbors = [g_inv.neighbors(node_id) for node_id in g_inv.vs['name']]
df_with_genres['neighbors'] = neighbors

df_with_genres.sort_values(by='betweenness_weigth', ascending=False).head(1)
Out[47]:
id ActorName movies_95_04 main_genre Music Animation Action Crime Horror Comedy Adult Documentary Drama Romance Sci-Fi Thriller Western Mystery NULL Family Short Fantasy Adventure War Musical betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors
12147 n162 Davis, Mark (V) 540 Adult 0 0 1 1 0 3 429 5 6 0 1 0 0 0 92 0 1 1 0 0 0 1.703766e+07 0.000427 0.980388 0.835476 [83, 86, 104, 131, 137, 139, 142, 181, 184, 29...
In [48]:
# Calculate the degree, betweenness centrality, pagerank, eigenvector centrality, and closeness centrality 
#and use for the one the inverse graph since we want to display the relationship correctly
degree = g.degree()
betweenness = g.betweenness(directed =False)
closeness = g.closeness(normalized= True, mode= "all",vertices= g.vs)
coreness = g.coreness()

# Add the calculated metrics to the node dataframe
df_with_genres['degree'] = degree
df_with_genres['betweenness'] = betweenness
df_with_genres['closeness'] = closeness
df_with_genres['coreness']= coreness

df_with_genres.sort_values(by='betweenness', ascending=False).head(1)
Out[48]:
id ActorName movies_95_04 main_genre Music Animation Action Crime Horror Comedy Adult Documentary Drama Romance Sci-Fi Thriller Western Mystery NULL Family Short Fantasy Adventure War Musical betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness coreness
10548 n2108 Jeremy, Ron 280 Adult 2 1 0 0 9 15 149 26 15 3 8 3 0 0 43 0 4 0 1 0 1 1.487206e+07 0.000465 0.752032 0.836407 [83, 104, 131, 183, 199, 216, 301, 345, 365, 4... 471 9.748544e+06 0.28272 77

Add the subgraph number to the dataframe

In [49]:
subgraph_num_list = []
for i in range(len(df_with_genres)):
    node_id = df_with_genres.iloc[i]['id']
    for j, subgraph in enumerate(subgraphs):
        if node_id in subgraph.vs['name']:
            subgraph_num_list.append(j)
            break
In [50]:
df_with_genres['subgraph_num'] = subgraph_num_list
In [51]:
df_with_genres.sort_values(by='betweenness', ascending=False).head()
Out[51]:
id ActorName movies_95_04 main_genre Music Animation Action Crime Horror Comedy Adult Documentary Drama Romance Sci-Fi Thriller Western Mystery NULL Family Short Fantasy Adventure War Musical betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness coreness subgraph_num
10548 n2108 Jeremy, Ron 280 Adult 2 1 0 0 9 15 149 26 15 3 8 3 0 0 43 0 4 0 1 0 1 1.487206e+07 0.000465 7.520318e-01 0.836407 [83, 104, 131, 183, 199, 216, 301, 345, 365, 4... 471 9.748544e+06 0.282720 77 0
4693 n3284 Chan, Jackie (I) 59 Comedy 1 0 2 4 1 13 0 18 0 2 0 3 0 0 4 3 7 1 0 0 0 5.217806e+06 0.000215 2.028330e-03 0.837658 [67, 228, 269, 732, 775, 855, 926, 1090, 1145,... 135 4.716909e+06 0.287238 51 0
2563 n564 Cruz, Penélope 46 Drama 3 0 0 0 0 2 0 5 6 6 0 2 3 2 3 5 5 0 1 3 0 9.200956e+06 0.000270 2.370663e-03 0.865430 [25, 59, 67, 147, 368, 586, 617, 708, 799, 926... 182 4.330663e+06 0.295555 56 0
14433 n14458 Shahlavi, Darren 16 Action 0 0 4 0 1 3 0 1 1 0 1 3 0 0 0 0 1 1 0 0 0 4.285954e+06 0.000040 2.510683e-07 0.500483 [2041, 2738, 3193, 4487, 14424, 14526, 15326, ... 8 4.295503e+06 0.193886 6 0
15720 n17308 Del Rosario, Monsour 20 Action 0 0 8 0 2 0 0 0 3 1 1 2 0 0 1 0 0 1 0 1 0 4.267096e+06 0.000029 2.301942e-09 0.402604 [7672, 10735, 14433, 15280, 15295, 15989] 6 4.267099e+06 0.163154 5 0

Print in PNG the subgraphs

  • Export the 19 Graphs in PNG to view the different structures
  • Many subgraphs consists of only two nodes
In [ ]:
# Print each subgraph to a PNG file
for i, subgraph in enumerate(subgraphs):
    filename = f"subgraph_{i+1}.png"
    subgraph.vs['label'] = subgraph.vs['name']
    ig.plot(subgraph, target=filename)

Only the most different graphs are shows, the subgraphs which are missing are literally only two nodes like subgraph 6.

image.png

5. Degree distribution

Analyse the degree distribution. Compute the total degree distribution.

5.1) How does this distributions look like?

This section shows degree distribution by counting the number of vertices with each degree. It prints the degree distribution for each subgraph

Degree distribution is a measure of the frequency of nodes with a certain degree in a network. The weight of the edges is not used in the calculation of degree distribution, as it only considers the number of edges connected to a node, i.e., the degree of the node. Therefore, weight is not used in degree distribution

In [ ]:
# Iterate over each subgraph
for i, subgraph in enumerate(subgraphs):

    # Compute the degree sequence
    degree_sequence = subgraph.degree()

    # Compute the degree distribution
    degree_count = {}
    for d in degree_sequence:
        degree_count[d] = degree_count.get(d, 0) + 1

    # Print the degree distribution
    print(f"Subgraph {i+1} degree distribution:", degree_count)
Subgraph 1 degree distribution: {36: 109, 23: 230, 22: 273, 46: 90, 18: 353, 5: 649, 6: 656, 57: 42, 11: 521, 7: 659, 93: 22, 47: 85, 25: 235, 19: 316, 107: 14, 1: 434, 8: 583, 123: 13, 78: 24, 74: 46, 34: 158, 24: 231, 30: 161, 2: 572, 26: 209, 13: 411, 16: 377, 21: 291, 9: 604, 51: 71, 29: 209, 66: 44, 56: 60, 3: 609, 84: 26, 61: 49, 102: 14, 31: 180, 4: 670, 28: 202, 12: 485, 145: 9, 15: 425, 14: 404, 289: 3, 83: 31, 92: 23, 37: 104, 10: 553, 44: 96, 43: 97, 345: 2, 27: 222, 45: 93, 54: 53, 160: 8, 174: 4, 118: 8, 144: 7, 20: 284, 105: 21, 97: 22, 77: 40, 32: 168, 59: 56, 104: 20, 90: 21, 33: 141, 146: 10, 87: 26, 52: 66, 70: 35, 49: 79, 71: 39, 53: 72, 86: 23, 82: 18, 35: 133, 60: 53, 81: 34, 181: 13, 17: 328, 68: 50, 184: 9, 162: 7, 94: 24, 39: 115, 179: 9, 41: 118, 147: 9, 50: 80, 216: 4, 40: 127, 180: 6, 42: 92, 190: 6, 241: 2, 157: 6, 131: 9, 55: 63, 80: 31, 63: 61, 99: 22, 194: 6, 76: 31, 140: 10, 125: 9, 392: 1, 438: 1, 38: 114, 79: 33, 73: 30, 72: 39, 58: 46, 231: 4, 65: 41, 48: 76, 166: 9, 115: 18, 111: 18, 124: 13, 225: 8, 259: 3, 161: 3, 127: 21, 158: 5, 85: 24, 96: 21, 222: 4, 75: 51, 355: 2, 101: 24, 129: 5, 254: 3, 153: 5, 220: 4, 211: 6, 133: 4, 120: 14, 69: 48, 142: 8, 207: 12, 334: 2, 64: 47, 113: 15, 188: 4, 263: 3, 134: 14, 333: 1, 103: 15, 151: 7, 450: 1, 275: 4, 165: 7, 154: 6, 95: 21, 182: 5, 186: 7, 138: 5, 98: 28, 189: 7, 109: 16, 218: 4, 149: 10, 203: 10, 171: 7, 110: 15, 62: 53, 128: 12, 91: 18, 187: 9, 163: 9, 177: 9, 610: 1, 185: 8, 89: 23, 121: 17, 297: 1, 108: 14, 267: 1, 318: 2, 143: 4, 287: 2, 176: 5, 376: 3, 88: 19, 168: 9, 239: 1, 219: 4, 295: 1, 67: 26, 100: 14, 183: 8, 119: 21, 340: 1, 533: 1, 116: 8, 173: 2, 106: 11, 114: 21, 117: 12, 130: 6, 137: 8, 245: 3, 122: 8, 159: 8, 206: 8, 126: 7, 148: 5, 214: 5, 402: 1, 132: 8, 164: 4, 172: 7, 210: 7, 156: 2, 135: 7, 175: 8, 251: 2, 410: 1, 361: 1, 136: 8, 196: 5, 280: 3, 178: 7, 221: 7, 246: 1, 195: 4, 213: 4, 191: 7, 561: 1, 255: 1, 457: 1, 200: 3, 167: 6, 204: 6, 139: 8, 265: 3, 366: 1, 293: 1, 208: 6, 152: 3, 236: 1, 227: 4, 169: 5, 286: 1, 346: 2, 112: 12, 201: 5, 232: 2, 500: 1, 417: 1, 256: 1, 197: 2, 192: 7, 545: 1, 310: 1, 212: 7, 224: 3, 199: 6, 215: 4, 223: 2, 451: 1, 240: 3, 228: 1, 217: 2, 209: 6, 463: 1, 400: 1, 262: 3, 299: 1, 193: 5, 341: 1, 205: 6, 155: 4, 257: 3, 253: 3, 202: 4, 229: 3, 395: 2, 313: 1, 555: 1, 283: 2, 320: 2, 141: 4, 471: 2, 323: 1, 324: 2, 198: 3, 419: 1, 336: 1, 398: 1, 377: 1, 244: 2, 335: 1, 170: 3, 427: 1, 278: 1, 272: 2, 269: 1, 319: 1, 294: 1, 584: 1, 298: 1, 428: 1, 150: 2, 226: 2, 233: 1, 260: 2, 784: 1, 393: 2, 252: 2, 312: 1, 599: 1, 243: 1, 266: 1, 331: 1, 382: 1, 258: 2, 326: 1, 372: 2, 270: 2, 242: 1, 416: 1, 314: 2, 365: 1, 358: 1, 493: 1, 235: 1, 279: 1, 311: 1, 490: 1, 350: 2, 250: 1, 475: 1, 300: 1}
Subgraph 2 degree distribution: {3: 7, 8: 1, 4: 5, 1: 7, 2: 2}
Subgraph 3 degree distribution: {2: 10, 3: 4, 1: 5, 4: 3, 7: 1}
Subgraph 4 degree distribution: {3: 4}
Subgraph 5 degree distribution: {5: 5, 3: 7, 4: 4, 7: 1, 6: 2, 1: 5, 2: 8, 8: 1}
Subgraph 6 degree distribution: {1: 2}
Subgraph 7 degree distribution: {2: 1, 1: 2}
Subgraph 8 degree distribution: {6: 6, 5: 1, 4: 1, 3: 3}
Subgraph 9 degree distribution: {1: 2}
Subgraph 10 degree distribution: {2: 3}
Subgraph 11 degree distribution: {1: 2}
Subgraph 12 degree distribution: {1: 2}
Subgraph 13 degree distribution: {1: 2}
Subgraph 14 degree distribution: {1: 2}
Subgraph 15 degree distribution: {1: 2, 2: 1}
Subgraph 16 degree distribution: {1: 2}
Subgraph 17 degree distribution: {1: 2}
Subgraph 18 degree distribution: {1: 2}
Subgraph 19 degree distribution: {1: 2}
  • The degree distribution of the subgraph 1 can be considered as the most significant and outstanding because it has the highest number of nodes and edges among all the subgraphs.
  • Subgraph 2: It is a connected graph. It can be considered as a social network. The degree distribution is heterogeneous, with some nodes having a very high degree, indicating influential people in the network
  • Subgraph 3: It is a connected graph. The degree distribution is homogeneous, with all nodes having a degree of either 1 or 2. It can be considered as a small social group
  • Subgraph 5: A high proportion of nodes with low degree (e.g. 1 or 2) may indicate a sparsely connected subgraph, while a high proportion of nodes with high degree may indicate a densely connected subgraph.
  • Subgraph 6/11-14,16-19: It is a disconnected graph. The degree distribution is homogeneous, with all nodes having a degree of 1. It can be considered as a set of isolated individuals.
  • Subgraph 8: There are no nodes in the subgraph with a degree lower than 3 or higher than 6.This degree distribution indicates that the subgraph is relatively dense and well-connected, with a majority of nodes having a high degree
In [80]:
# Get the subgraphs
subgraphs = g.decompose()

# Create a figure for the plot
fig = go.Figure()

# Iterate over each subgraph
for i, subgraph in enumerate(subgraphs):

    # Get the degree distribution
    degree_dist = subgraph.degree_distribution()

    # Convert the degree distribution to a list of tuples
    degree_dist = [(bin_left, count) for bin_left, _, count in degree_dist.bins()]

    # Sort the list of tuples by the bin left value
    degree_dist = sorted(degree_dist, key=lambda x: x[0])

    # Add a trace for the degree distribution of the current subgraph
    fig.add_trace(go.Scatter(x=[x[0] for x in degree_dist], y=[x[1] for x in degree_dist], mode='lines', name=f'Subgraph {i+1}'))

# Update the layout 
#fig.update_layout(xaxis_title='Degree', yaxis_title='Count', title='Degree distribution per subgraph')

# Show the plot
#fig.show()

image.png

image.png

The degree distribution plot shows how many connections (or edges) each actor has in the network. On the x-axis, we have the degree of the nodes, and on the y-axis, we have the number of actors with that degree.

In Subgraph 1 (blue line), we can observe that most actors have a small number of connections, with a peak of 670 actors having only 4 degrees/ connection. The plot then drops sharply, indicating that there are relatively few actors with more than few connections/degrees.

The plot reaches its maximum at a degree of 784, where only one actor is present, meaning that this actor is highly connected in the network. This kind of plot can help us understand the overall structure of the network and identify the most influential actors (i.e., those with the highest degree).

Subgraph 5 & 3& 2: Shows also a declining trend from low degrees to the highest degree of 8 & 7.

Subgraph 8: Degree is increasing from degree 4 to degree 6

5.2) What is the maximum degree?

In [ ]:
# iterate over each subgraph and find min and max degree
for i, sg in enumerate(subgraphs):
    min_degree = min(sg.degree())
    max_degree = max(sg.degree())
    print(f"The maximum degree of subgraph {i} is: {max_degree}")
The maximum degree of subgraph 0 is: 784
The maximum degree of subgraph 1 is: 8
The maximum degree of subgraph 2 is: 7
The maximum degree of subgraph 3 is: 3
The maximum degree of subgraph 4 is: 8
The maximum degree of subgraph 5 is: 1
The maximum degree of subgraph 6 is: 2
The maximum degree of subgraph 7 is: 6
The maximum degree of subgraph 8 is: 1
The maximum degree of subgraph 9 is: 2
The maximum degree of subgraph 10 is: 1
The maximum degree of subgraph 11 is: 1
The maximum degree of subgraph 12 is: 1
The maximum degree of subgraph 13 is: 1
The maximum degree of subgraph 14 is: 2
The maximum degree of subgraph 15 is: 1
The maximum degree of subgraph 16 is: 1
The maximum degree of subgraph 17 is: 1
The maximum degree of subgraph 18 is: 1

5.3) What is the minimum degree?

In [ ]:
# iterate over each subgraph and find min and max degree
for i, sg in enumerate(subgraphs):
    min_degree = min(sg.degree())
    max_degree = max(sg.degree())
    print(f"The minimum degree of subgraph {i} is: {min_degree}")
The minimum degree of subgraph 0 is: 1
The minimum degree of subgraph 1 is: 1
The minimum degree of subgraph 2 is: 1
The minimum degree of subgraph 3 is: 3
The minimum degree of subgraph 4 is: 1
The minimum degree of subgraph 5 is: 1
The minimum degree of subgraph 6 is: 1
The minimum degree of subgraph 7 is: 3
The minimum degree of subgraph 8 is: 1
The minimum degree of subgraph 9 is: 2
The minimum degree of subgraph 10 is: 1
The minimum degree of subgraph 11 is: 1
The minimum degree of subgraph 12 is: 1
The minimum degree of subgraph 13 is: 1
The minimum degree of subgraph 14 is: 1
The minimum degree of subgraph 15 is: 1
The minimum degree of subgraph 16 is: 1
The minimum degree of subgraph 17 is: 1
The minimum degree of subgraph 18 is: 1

The maxium degree are 784 connection/ degree to other nodes and the minimum is 1 degree only.

Who are the actors with the maximum and minimum degree?

In [ ]:
# calculate the degrees of all nodes
degrees = g.degree()

# create a DataFrame from the dictionary
df_degrees = pd.DataFrame({'node': g.vs['name'], 'degree': degrees})

# get the maximum degree and corresponding actors
max_degree = df_degrees['degree'].max()
actors_with_max_degree = df_degrees.loc[df_degrees['degree'] == max_degree, 'node'].tolist()

# get the minimum degree and corresponding actors
min_degree = df_degrees['degree'].min()
actors_with_min_degree = df_degrees.loc[df_degrees['degree'] == min_degree, 'node'].tolist()

# print the results
print("Actors with the maximum degree:", actors_with_max_degree)
print("Actors with the minimum degree:", actors_with_min_degree)
Actors with the maximum degree: ['n162']
Actors with the minimum degree: ['n9764', 'n6151', 'n17479', 'n10577', 'n11616', 'n14370', 'n15989', 'n1479', 'n17623', 'n14631', 'n16224', 'n11477', 'n17093', 'n8316', 'n11572', 'n12592', 'n17250', 'n15576', 'n11977', 'n7607', 'n7063', 'n15803', 'n12596', 'n3698', 'n2028', 'n3838', 'n8809', 'n11452', 'n7742', 'n2105', 'n17800', 'n12164', 'n13888', 'n14870', 'n7186', 'n11369', 'n17860', 'n9128', 'n6979', 'n4888', 'n10942', 'n17388', 'n10120', 'n16362', 'n17633', 'n13435', 'n16661', 'n17915', 'n10967', 'n12244', 'n14848', 'n11592', 'n15747', 'n15782', 'n9182', 'n10569', 'n7468', 'n2802', 'n4250', 'n15115', 'n7937', 'n9378', 'n11606', 'n14444', 'n4380', 'n7017', 'n12264', 'n13660', 'n13327', 'n17842', 'n17910', 'n15839', 'n15744', 'n17882', 'n16829', 'n16888', 'n8841', 'n11550', 'n17533', 'n17447', 'n16072', 'n4049', 'n8421', 'n8454', 'n5718', 'n10394', 'n4976', 'n10691', 'n6746', 'n6587', 'n17477', 'n15221', 'n13904', 'n17242', 'n4082', 'n15810', 'n6367', 'n17807', 'n13653', 'n7395', 'n9301', 'n10677', 'n16492', 'n14930', 'n17406', 'n11855', 'n13498', 'n11424', 'n17708', 'n7439', 'n14262', 'n13008', 'n11858', 'n10869', 'n15586', 'n15121', 'n2818', 'n11364', 'n16120', 'n17295', 'n7793', 'n15667', 'n10277', 'n13082', 'n13924', 'n7438', 'n2009', 'n13790', 'n9922', 'n16376', 'n10150', 'n11006', 'n1229', 'n10824', 'n393', 'n16799', 'n15916', 'n16369', 'n7575', 'n14745', 'n9516', 'n16250', 'n883', 'n4892', 'n17410', 'n13885', 'n11421', 'n5530', 'n6383', 'n6902', 'n8118', 'n15316', 'n3640', 'n12123', 'n17859', 'n8842', 'n15479', 'n3011', 'n10167', 'n3861', 'n15953', 'n12156', 'n2048', 'n12909', 'n2131', 'n3797', 'n7292', 'n8050', 'n3822', 'n16606', 'n2823', 'n16766', 'n14123', 'n17903', 'n17901', 'n13828', 'n17076', 'n17822', 'n6396', 'n13967', 'n5586', 'n15819', 'n12223', 'n14945', 'n5664', 'n2057', 'n17746', 'n17855', 'n14440', 'n8100', 'n17848', 'n4645', 'n16760', 'n16367', 'n17771', 'n13049', 'n1486', 'n2130', 'n17514', 'n17425', 'n8866', 'n17841', 'n14250', 'n7792', 'n15273', 'n5084', 'n13853', 'n8902', 'n16149', 'n9297', 'n16668', 'n6989', 'n17852', 'n14944', 'n7594', 'n8092', 'n3588', 'n8344', 'n9176', 'n16360', 'n17395', 'n7016', 'n9298', 'n17575', 'n10975', 'n15816', 'n469', 'n13368', 'n10108', 'n12385', 'n15186', 'n13125', 'n6380', 'n214', 'n12303', 'n3151', 'n2821', 'n14866', 'n8926', 'n13292', 'n1461', 'n2065', 'n13802', 'n16943', 'n5982', 'n10319', 'n17008', 'n10246', 'n16412', 'n10976', 'n12162', 'n11262', 'n9958', 'n17139', 'n12781', 'n1462', 'n15008', 'n11951', 'n16805', 'n13394', 'n9159', 'n2808', 'n17911', 'n5793', 'n17409', 'n8346', 'n7355', 'n11091', 'n12693', 'n449', 'n9066', 'n17356', 'n12151', 'n14533', 'n15642', 'n17569', 'n13389', 'n4981', 'n9163', 'n2763', 'n10589', 'n16525', 'n6906', 'n16279', 'n14125', 'n17535', 'n1286', 'n16069', 'n16995', 'n6957', 'n13654', 'n17434', 'n15693', 'n17391', 'n4445', 'n14486', 'n8466', 'n15924', 'n11229', 'n11086', 'n16246', 'n17214', 'n17440', 'n9429', 'n17820', 'n10766', 'n15231', 'n17775', 'n15933', 'n16916', 'n15173', 'n515', 'n8804', 'n583', 'n14858', 'n17411', 'n17854', 'n7103', 'n10084', 'n17613', 'n13317', 'n4041', 'n12127', 'n1500', 'n17847', 'n6828', 'n16340', 'n4902', 'n16965', 'n17105', 'n17734', 'n10837', 'n14871', 'n11466', 'n4242', 'n5947', 'n5866', 'n8410', 'n14400', 'n5490', 'n4044', 'n16408', 'n8463', 'n17635', 'n14102', 'n9220', 'n17801', 'n8816', 'n16370', 'n17200', 'n17723', 'n17865', 'n12193', 'n17750', 'n12899', 'n16631', 'n8419', 'n16913', 'n14637', 'n15226', 'n9236', 'n15578', 'n15769', 'n16494', 'n7038', 'n10243', 'n13260', 'n14590', 'n2841', 'n14269', 'n9749', 'n17834', 'n11126', 'n8512', 'n11610', 'n7713', 'n16469', 'n14121', 'n10379', 'n9401', 'n13295', 'n15665', 'n17809', 'n14006', 'n10733', 'n17883', 'n2107', 'n13706', 'n14246', 'n11576', 'n4239', 'n4395', 'n1544', 'n6860', 'n14582', 'n11753', 'n12222', 'n5581', 'n14754', 'n13393', 'n17390', 'n15059', 'n13582', 'n3567', 'n13649', 'n9253', 'n473', 'n10153', 'n15951', 'n8098', 'n12153', 'n15557', 'n17618', 'n7505', 'n11149', 'n15931', 'n16567', 'n7364', 'n9672', 'n4974', 'n10157', 'n17196', 'n5713', 'n17797', 'n248', 'n6999', 'n17904', 'n7453', 'n8763', 'n16495', 'n13638', 'n14022', 'n11288', 'n16718', 'n13334', 'n17884', 'n17737', 'n15773', 'n8081', 'n496', 'n11312', 'n15571', 'n10648', 'n13628', 'n17907', 'n13859', 'n7449', 'n13128', 'n16116', 'n14088', 'n10822', 'n15812', 'n1250', 'n16583', 'n12865', 'n14459', 'n3138', 'n5739', 'n15495', 'n17298', 'n14111', 'n8868', 'n8037', 'n7311', 'n16226', 'n16272', 'n7093', 'n17740', 'n14457', 'n10268', 'n13307', 'n16798', 'n13581', 'n8501', 'n3616']
In [ ]:
# calculate the degree of each node
degrees = g.degree()

# find the node with the minimum degree
min_degree = min(degrees)
min_nodes = [i for i, deg in enumerate(degrees) if deg == min_degree]

# find the node with the maximum degree
max_degree = max(degrees)
max_nodes = [i for i, deg in enumerate(degrees) if deg == max_degree]

# print the names of the actors with minimum and maximum degrees
min_actors = nodes.iloc[min_nodes]['ActorName'].tolist()
max_actors = nodes.iloc[max_nodes]['ActorName'].tolist()

print("Actors with minimum degree:", min_actors)
print("Actors with maximum degree:", max_actors)
Actors with minimum degree: ['Sokoloff, Marla', 'Bonham-Carter, Crispin', 'Nagatsuka, Kyozo', 'R&apos;Mante, Adrian', 'Moore, Rudy Ray', 'Young, Dey', 'Lemche, Kris', 'Schönemann, Hinnerk', 'Peluffo, Mariano', 'Ulliel, Gaspard', 'Offerman, Nick', 'Rieck, Billy', 'Busse, John', 'Krusiec, Michelle', 'Baruc, Siri', 'Collins, Paul (I)', 'Peterson, Cassandra', 'Kurtiz, Tuncel', 'Bossa, Luly', 'de Mylius, Jørgen', 'Newton, Wayne', 'Stuart, James Patrick', 'Julien, Jean-Luc', 'Douglas, Shirley', 'Michael, Christopher', 'Davis, Sarah Scott', 'Van Wormer, Steve', 'Dempsey, Michael (I)', 'Zehetner, Nora', 'Romeo, Marc', 'Ravitz, Nati', 'Jennings, Brent', 'Jacot, Christopher', 'Mylan, Richard', 'Polk, Stephen', 'Ryan, Thomas Jay', 'Nørbygård, Finn', 'Leroux, Maxime', 'Drake, David (I)', 'Cooper, Rowena', 'Blanche, Robert', 'Karsenti, Sabine', 'Fernandez, Peter (I)', 'Wu, Robert', 'Shakibai, Khosro', 'Söllner, Pippi', 'Bomonde, Betty', 'Polonia, John', 'Hoffman, Jackie', 'Werner, Roy', 'Godboldo, Dale', 'Gaffney, Mo', 'Russom, Leon', 'Blanks, Billy', 'Limas, Jim Adhi', 'Schwartzman, Jason', 'Sec, Frantisek', 'Needham, Tracey', 'De Bankolé, Isaach', 'Calzone, Maria Pia', 'Vukotic, Milena', 'Westfeldt, Jennifer', 'Williams, Lia', 'Bolkan, Florinda', 'von Franckenstein, Clement', 'Quinn, Francesco', 'Karven, Ursula', 'Cordy, Annie', 'Dumaurier, Francis', 'Guskov, Aleksei', 'Wynn, Anthony', 'Neale, Brent', 'Holt, David (III)', 'Walsh, Darren (I)', 'McManus, Rove', 'Sterling, Rachel', 'Shimono, Sab', 'Brener, Shirly', 'Cha, Seung-won', 'Yankovsky, Oleg', 'Azizi, Anthony', 'Fox, Emilia', 'Landry, Ali', 'Robinson, Andrew (I)', 'Anthony, Lysette', 'Canals, Maria', 'Kober, Jeff', 'Babcock, Todd', 'Kerman, Ken', 'Krauss, Naomi', 'Tokiwa, Takako', 'Thomas, Naím', 'Mills, Judson', 'Tjalsma, Joke', 'McMurtry, Michael', 'Kirk, Justin', 'Agenin, Béatrice', 'Levy, Nir (I)', 'Sola, Catherine', 'Rogan, Joe', 'Strozier, Henry', 'Bennett, Fran (I)', 'Garner, Kelli', 'Carroll, Justin', 'Alvarez, Juan Luis', 'Wildbolz, Klaus', 'Fallenstein, Karina', 'Walker, Polly (II)', 'Mims, Roxzane T.', 'Brady, Orla', 'Maddox, Billy', 'Damien (III)', 'Ullmann, Kostja', 'Lawrence, Sharon', 'Gibbons, Leeza', 'Lawson, Denis', 'Craig, Andrew (I)', 'Chamberlin, Kevin', 'Matsushita, Yuki', 'Bubber', 'Stover, George', 'Johnson, Rick (I)', 'Pickles, Carolyn', 'Cannatella, Trishelle', 'Franek, Ivan', 'Petrucci, Luigi (I)', 'Cutzarida, Ivo', 'Moritz, Dorothea', 'Caparrós, Alonso', 'Riemelt, Max', 'Yenque, Jose', 'Ellis, Aunjanue', 'Kae-Kazim, Hakeem', 'Buendía, Rafael', 'Langton, Brooke', 'Mailhouse, Robert', 'Desverchère, Jocelyne', 'Barry, Rod', 'Linden, Hal', 'Deret, Jean-Claude', 'Berman, Andy', 'Abbas, Hiyam', 'Alexander, Flex', 'Reid, Mike (I)', 'Tamura, Eriko', 'Caldwell, L. Scott', 'Loughlin, Lori', 'Brennan, Eileen', 'Parfitt, Judy', 'Hipp, Paul (I)', 'Mari, Gina', 'Miller, Kristen', 'Coogan, Keith', 'Lyles, Leslie', 'Soriat, Bettina', 'Flaherty, Lanny', 'Rosen, Beatrice', 'Havers, Nigel', 'Kiely, Mark', 'Kraljevic, Ivan', 'Baker, George (I)', 'Rodríguez, Marco (I)', 'Gossett, Robert', 'Marchelletta, Jeff', 'Jordan, Leslie', 'Jones, January (I)', 'Mitchum, Christopher', 'Elias, Cyrus', 'Howerton, Charles', 'Brady, Moya', 'Dent, Cheryl', 'Rivière, Marie', 'Coulson, Lindsey', 'Lähde, Ville (I)', 'Alexander, Sharon (I)', 'Hayes, David C.', 'Perine, Kelly', 'Lee, Mark (X)', 'Langham, Chris', 'Palmer-Stoll, Julia', 'Marshall, Paula', 'O&apos;Rourke, Shaun (II)', 'Olds, Gabriel', 'Paxton, Sara', 'Theirse, Darryl', 'Eckhouse, James', 'Canton, Joanna', 'Zaki, Mona', 'Abecassis, Yaël', 'Wildman, Valerie', 'Moutsatsou, Katerina', 'Hailer, April', 'Richardson, Sy', 'Wirth, Billy', 'Koklas, Kostas', 'Skye, Ione', 'Heyl, Burkhard', 'Borlenghi, Matt', 'Amandla', 'Malmberg, Claes', 'Martin, Rémi', 'Anderson, Fred (III)', 'Canovas, Anne', 'Chamish, Leanna', 'Gilliard, Carl', 'Bémol, Brigitte', 'Azurdia, Richard', 'Andrei, Lydia', 'Murray, Duane', 'Romanov, Stephanie', 'Perkins, Jack (III)', 'Oxenberg, Catherine', 'Shalabi, Menna', 'Pilato, Joseph', 'Salsedo, Frank', 'Malco, Romany', 'Gould, Geoffrey', 'Chin, Tsai (I)', 'Deshors, Erick', 'Livingston, Richard', 'Hill, Nicholas (I)', 'Taylor, Mark L.', 'Makinen, Karl', 'Dawes, Bill', 'Ritter, Jason', 'Sky, Jennifer', 'Strickland, KaDee', 'Holmes, Teck', 'Katona, Kerry', 'Quinton, Sophie', 'Bremmer, Richard', 'Tortosa, Silvia', 'Donovan, Daisy', 'Bergé, Francine', 'Botone, Talia', 'Tigar, Kenneth', 'McCoy, Andre', 'Macaninch, Cal', 'Lecas, Jean-Claude', 'Lee, Eun-ju (II)', 'Shaw, Vinessa', 'Shonka, J. Scott', 'Hutcherson, Josh', 'Mennegand, Élodie', 'Jade, Claude', 'Zibetti, Roberto', 'Colvin, Shawn', 'Gosling, Ryan (I)', 'Marewski, Armin', 'McCallany, Holt', 'Bergere, Jenica', 'McKinnon, Megan', 'Manilow, Barry', 'Cayo, Fernando', 'Kouyaté, Sotigui', 'Henshaw, Lee', 'Booth, Emily', 'Sciò, Yvonne', 'De Neck, Didier', 'Moffett, D.W.', 'Shimizu, Tsuyu', 'Sarabia, Ric', 'Bang, Eun-jin', 'Watson, Tom (I)', 'Rhys, Ieuan', 'Rasche, David', 'Mealing, Amanda', 'Howard, Ken (I)', 'Witter, Frank', 'Jostyn, Jennifer', 'Sucharetza, Marla', 'Broustal, Sophie', 'Martells, Cynthia', 'Little, Kim', 'Hada, Michiko', 'Yeryomin, Vladimir', 'Russell, Lucy', 'Harrington, Cheryl Francis', 'Koundé, Hubert', 'Schumann, Tanja', 'Shire, Talia', 'Winnick, Katheryn', 'Coll, Ivonne', 'Bonacelli, Paolo', 'Merrells, Jason', 'Choi, Min-su', 'Egan, Peter (I)', 'Taylor, LG', 'Makise, Riho', 'Kean, Greg', 'Albertini, Michel', 'Ruslanova, Nina', 'Chapman, Sean', 'Schaffel, Lauren', 'Burke, Carlease (I)', 'Boutsikaris, Dennis', 'Spano, Vincent', 'Provenza, Paul', 'Wilson, Cal (II)', 'Underwood, Jay (I)', 'Sihol, Caroline', 'Gallagher, Frank (II)', 'Ulyanov, Mikhail', 'Kern, Joey', 'Menti, Nena', 'Milos, Sofia', 'Messuri, LoriDawn', 'Kianian, Reza', 'Idiz, Nurseli', 'Garcia, Aimee', 'Graham, Julie (I)', 'Bron, Eleanor', 'Fitzpatrick, Leo', 'Kasper, Gary', 'Gorski, Tamara', 'Fukaura, Kanako', 'Tork, Hanan', 'Spencer-Nairn, Tara', 'Tweeden, Leeann', 'Hamilton, Emily', 'Ferguson, Tim (I)', 'Owen, Lloyd', 'Drukarova, Dinara', 'Ryan, Mitch', 'Haralambidis, Renos', 'Porizkova, Paulina', 'Zappa, Ahmet', 'Ba, Inday', 'Okada, Yoshinori', 'Ashbourne, Jayne', 'Cass, John (I)', 'Peldon, Ashley', 'Speer, Hugo', 'Cray, Ed', 'Gibney, Susan', 'Czischek, Elke', 'Bohm, Marquard', 'Bergeron, Philippe (I)', 'Rubin, Jennifer', 'Gillette, Anita', 'Thomson, Kristen', 'Gabriela, Marília', 'Davis, William Stanford', 'Vanthielen, Francesca', 'Stewart, Will (I)', 'Seigner, Emmanuelle', 'Hristov, Ivaylo', 'Michaels, Rhino', 'Riker, Robin', 'Georgakis, Nikos', 'Wang, Zhiwen', 'Mizuki, Arisa', 'Rinaldi, Renzo', 'Bal, Kenan', 'Lavandier, Luc', 'Servais, Manuela', 'Lafferty, Sandra Ellis', 'Lim, Kay Tong', 'Zahonero, Coraly', 'Cannon, Harold', 'Smith, Douglas (VI)', 'Speck, Karsten', 'Mojica, Monique', 'Brochtrup, Bill', 'Litz, Nadia', 'Massey, Jennifer (I)', 'May, Roger (I)', 'McMains, Cody', 'Cawood, Sarah', 'Lesure, James', 'Pyper-Ferguson, John', 'Lawlor, Gerri', 'Baraka, Amiri', 'Popowich, Paul', 'Teale, Owen', 'Bellar, Clara', 'Dollar, Aubrey', 'Puleston-Davies, Ian', 'Cryston, Rob', 'Sparber, Herschel', 'Heo, Jun-ho', 'Rosete, Jose', 'Keren, Dror', 'Moyer, Stephen (I)', 'Thornton, Sigrid', 'Pickhaver, Greig', 'O&apos;Toole, Matt', 'Schuch, Karoline', 'Lauren, Val', 'Cozart, Cylk', 'Conti, Tom', 'Hathaway, Amy (I)', 'Ové, Indra', 'Vernon, Kate', 'Clark, Marsha', 'Conde, Fernando', 'Pickett, Cindy', 'Bell, Kristen (I)', 'Pallas, Cécile', 'Gidley, Pamela', 'Praetorius, Friedrich Karl', 'Jett, Joan', 'Fazira, Erra', 'Gordon, Pamela (I)', 'Solka, Gunnar', 'O&apos;Keefe, Michael', 'Glaser, Paul Michael', 'Taylor, Regina (I)', 'Robinson, Charles (I)', 'Guillory, Bennet', 'DeLizia, Cara', 'Moody, Ron', 'Park, Shin-yang', 'Vogt, Paul (II)', 'Cowell, Brendan', 'Alasya, Zeki', 'Franco, Jesus', 'Dapkunaite, Ingeborga', 'Klein, Gérard (I)', 'Montgomery, Judith', 'Ray, Connie', 'Bocher, Christian', 'Kelly, Lisa Robin', 'Bettinger, Manfred', 'Teyssier, Agathe', 'Walter, Lisa Ann', 'Kuusniemi, Matti', 'Malik, Art', 'Steen, Jessica', 'Mangum, Meagan', 'Knaack, Pamela', 'Benesch, Gabriela', 'Bohne, Bruce', 'Gray, Erin', 'Slater, Kelly', 'Moskona, Aryeh', 'Zhou, Xun', 'Timbrook, Corby', 'Winters, Time', 'McIntyre, Marilyn', 'Robinson, Bumper', 'Von Teese, Dita', 'Fields, Edith (I)', 'Sellien, Rainer', 'Harry, &apos;Horny&apos;', 'Bamman, Gerry', 'Akinnuoye-Agbaje, Adewale', 'Valentín, Juan', 'Saeki, Hinako', 'Shepherd, Suzanne', 'Treviño, Marco Antonio', 'Carol, Jean (I)', 'Wong, Benedict', 'Coppola, Alicia', 'Delfino, Majandra', 'Vincent, Jan-Michael', 'Phillips, Wendy (I)', 'Walker, Ally', 'Ng, Carrie', 'Reema', 'LeBlanc, Sadie', 'Avedikian, Serge', 'Prodan, Andrea', 'Lemke, Anthony', 'Madison, Elina', 'Cao, Jorge', 'Landes, Michael', 'Yoshiyuki, Yumi', 'Janniche, Lisbeth', 'Roth, Andrea', 'Doyle, John (I)', 'Quartaroli, Peter', 'Hassan, Jalaluddin', 'Rogers, AnnieScott', 'Downing, Sara (I)']
Actors with maximum degree: ['Davis, Mark (V)']

Looking for the actor names Davis, Mark (V) has the highest degree, who is know for the Adult main genre and played mostly there. He is "Britain's biggest male porn star in America".

In [ ]:
# create a list of actors with max degree
actors_with_max_degree = df_degrees.loc[df_degrees['degree'] == max_degree, 'node'].tolist()

# filter the original dataframe by actors with max degree
df_max_degree = df_with_genres[df_with_genres['id'].isin(actors_with_max_degree)]
df_max_degree
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi
12147 n162 Davis, Mark (V) 540 Adult 0 429 1 1 0 0 3 0 1 0 0 0 0 92 6 0 0 1 5 0 1

The actors with one degree are mainly from the Comedy, Drama and Romance main genres. It looks like these actors were less successful than other actors in the dataset hence they only one connection.

In [ ]:
# create a list of actors with minimum degree
actors_with_min_degree = df_degrees.loc[df_degrees['degree'] == min_degree, 'node'].tolist()

# filter the original dataframe by actors with minimum degree
df_min_degree = df_with_genres[df_with_genres['id'].isin(actors_with_min_degree)]
# show all columns
pd.set_option('display.max_rows',None)
df_min_degree
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi
20 n9764 Sokoloff, Marla 11 Comedy 0 0 0 0 0 1 3 0 1 0 0 0 0 1 2 0 0 1 0 0 2
41 n6151 Bonham-Carter, Crispin 10 Drama 0 0 0 0 0 2 1 0 1 1 0 0 0 2 3 0 0 0 0 0 0
68 n17479 Nagatsuka, Kyozo 10 Romance 0 0 0 0 0 3 0 0 0 0 0 0 0 5 2 0 0 0 0 0 0
76 n10577 R&apos;Mante, Adrian 10 Comedy 0 0 0 0 1 0 3 1 0 0 0 1 0 1 2 0 0 0 1 0 0
114 n11616 Moore, Rudy Ray 12 Comedy 0 0 0 0 0 0 7 1 0 1 0 0 0 1 0 0 0 0 1 0 1
138 n14370 Young, Dey 16 Thriller 0 0 0 0 1 1 0 0 0 0 0 6 0 0 6 0 0 1 1 0 0
146 n15989 Lemche, Kris 13 Drama 1 0 2 1 0 0 1 0 0 0 0 1 0 1 6 0 0 0 0 0 0
163 n1479 Schönemann, Hinnerk 10 Drama 0 0 0 0 0 3 0 0 0 0 0 1 0 0 4 0 0 1 0 1 0
189 n17623 Peluffo, Mariano 12 Family 0 0 0 0 6 0 1 0 0 0 0 0 0 5 0 0 0 0 0 0 0
248 n14631 Ulliel, Gaspard 14 Drama 1 0 0 0 0 2 1 0 1 0 0 0 0 5 2 0 0 1 0 1 0
252 n16224 Offerman, Nick 12 Drama 0 0 0 0 0 3 3 0 0 0 0 0 0 0 4 0 0 2 0 0 0
262 n11477 Rieck, Billy 10 Thriller 0 0 0 0 0 0 1 0 0 1 0 3 0 0 0 1 1 1 0 0 2
312 n17093 Busse, John 10 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 4 1 0 1 2 0 0 0
367 n8316 Krusiec, Michelle 13 Comedy 0 0 0 0 1 3 3 0 0 0 0 0 0 1 2 0 1 2 0 0 0
433 n11572 Baruc, Siri 12 Drama 0 0 0 1 0 2 2 0 0 1 0 1 0 1 3 0 0 0 0 0 1
450 n12592 Collins, Paul (I) 10 Drama 0 0 0 0 0 0 3 0 0 0 0 2 0 0 3 0 0 0 0 0 2
484 n17250 Peterson, Cassandra 14 Horror 0 1 0 0 0 0 2 0 0 6 0 0 0 2 0 0 0 2 1 0 0
504 n15576 Kurtiz, Tuncel 14 Drama 0 0 0 0 0 2 1 0 0 0 0 0 0 1 5 0 0 1 4 0 0
524 n11977 Bossa, Luly 13 Romance 0 0 0 0 0 3 1 0 0 0 0 0 0 7 2 0 0 0 0 0 0
527 n7607 de Mylius, Jørgen 10 Music 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 7 0 0
646 n7063 Newton, Wayne 12 Drama 0 1 0 0 0 1 2 2 0 0 0 0 0 2 2 0 0 0 2 0 0
683 n15803 Stuart, James Patrick 10 Comedy 0 0 0 0 0 0 4 0 0 0 0 1 0 2 1 0 0 0 0 1 1
706 n12596 Julien, Jean-Luc 12 Romance 0 0 2 0 0 3 0 0 0 0 0 1 0 1 0 0 0 2 2 1 0
709 n3698 Douglas, Shirley 11 Drama 0 0 0 0 2 0 1 0 0 0 0 2 0 0 5 0 0 0 1 0 0
754 n2028 Michael, Christopher 14 Drama 0 0 0 1 0 1 0 0 0 0 1 2 0 1 5 0 0 1 1 0 1
755 n3838 Davis, Sarah Scott 10 Drama 0 0 0 0 0 0 0 1 0 1 0 1 0 4 2 0 0 1 0 0 0
760 n8809 Van Wormer, Steve 10 Comedy 0 0 0 0 0 2 4 0 0 0 0 0 0 1 2 0 0 0 0 0 1
830 n11452 Dempsey, Michael (I) 13 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 2 6 0 0 2 0 0 2
871 n7742 Zehetner, Nora 10 Comedy 1 0 0 0 0 0 3 0 0 0 0 1 0 2 2 0 0 0 0 1 0
878 n2105 Romeo, Marc 10 Drama 0 0 0 0 0 2 0 0 1 1 0 1 0 0 3 0 0 2 0 0 0
896 n17800 Ravitz, Nati 10 Romance 0 0 0 0 0 4 2 0 0 0 0 1 0 0 2 0 0 0 0 1 0
971 n12164 Jennings, Brent 10 Drama 1 0 0 0 0 1 0 0 0 1 0 1 0 0 5 0 0 1 0 0 0
1075 n13888 Jacot, Christopher 10 Drama 0 0 1 0 0 0 1 1 0 1 1 0 0 2 2 0 0 1 0 0 0
1142 n14870 Mylan, Richard 10 Comedy 0 0 0 0 0 1 2 0 0 0 0 1 0 3 1 0 0 1 1 0 0
1158 n7186 Polk, Stephen 12 Action 0 0 0 2 0 1 1 0 0 1 0 2 0 2 2 1 0 0 0 0 0
1161 n11369 Ryan, Thomas Jay 13 Comedy 0 0 0 0 0 2 3 0 0 0 0 2 0 2 2 0 0 2 0 0 0
1206 n17860 Nørbygård, Finn 11 Comedy 0 0 0 0 3 0 3 2 0 0 0 0 0 0 0 0 0 0 3 0 0
1359 n9128 Leroux, Maxime 19 Drama 1 0 0 0 1 1 1 0 0 0 0 0 0 7 6 0 0 2 0 0 0
1373 n6979 Drake, David (I) 10 Drama 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 5 0 0 0
1401 n4888 Cooper, Rowena 11 Drama 1 0 0 0 0 1 0 0 0 0 0 1 0 1 6 0 1 0 0 0 0
1419 n10942 Blanche, Robert 19 Drama 1 0 0 0 0 0 3 0 0 0 0 1 0 4 8 0 0 1 0 0 1
1427 n17388 Karsenti, Sabine 10 Drama 0 0 0 1 0 0 1 0 0 0 0 1 0 2 2 0 1 1 0 0 1
1478 n10120 Fernandez, Peter (I) 11 Animation 0 0 0 0 1 0 0 0 0 0 5 1 0 2 2 0 0 0 0 0 0
1483 n16362 Wu, Robert 10 Thriller 0 0 0 0 0 0 2 0 0 0 1 3 0 1 1 0 0 2 0 0 0
1495 n17633 Shakibai, Khosro 12 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 8 3 0 0 0 0 0 0
1570 n13435 Söllner, Pippi 11 Drama 0 0 0 0 1 0 0 0 1 0 0 0 0 6 2 0 0 1 0 0 0
1587 n16661 Bomonde, Betty 10 Thriller 0 0 0 0 0 0 1 0 0 0 0 1 0 7 0 0 1 0 0 0 0
1604 n17915 Polonia, John 11 Horror 0 1 0 0 0 0 0 0 0 6 0 0 0 1 0 0 0 0 0 0 3
1626 n10967 Hoffman, Jackie 10 Comedy 0 0 0 0 1 3 3 0 0 0 0 0 0 1 1 0 0 1 0 0 0
1631 n12244 Werner, Roy 12 Drama 0 0 0 1 0 0 1 0 1 0 0 3 0 2 3 0 0 0 0 1 0
1652 n14848 Godboldo, Dale 11 Comedy 0 0 0 1 0 0 5 0 0 1 0 0 0 1 2 0 0 0 0 0 1
1653 n11592 Gaffney, Mo 11 Comedy 0 0 0 0 0 0 6 0 0 0 0 0 0 3 1 0 0 0 1 0 0
1681 n15747 Russom, Leon 12 Drama 0 0 0 0 0 0 1 0 0 0 0 1 0 4 4 0 0 1 0 0 1
1736 n15782 Blanks, Billy 14 Action 0 0 0 2 0 0 0 0 1 0 0 2 0 7 1 0 0 0 1 0 0
1772 n9182 Limas, Jim Adhi 12 Romance 1 0 0 0 0 3 2 0 0 0 0 0 0 3 1 0 0 1 0 0 1
1822 n10569 Schwartzman, Jason 14 Drama 0 0 1 0 1 1 3 0 0 0 0 0 0 0 6 0 0 2 0 0 0
1824 n7468 Sec, Frantisek 10 Drama 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 7 2 0 0
1918 n2802 Needham, Tracey 10 Drama 0 0 0 0 0 1 0 0 0 0 0 2 0 0 4 0 0 1 0 1 1
1954 n4250 De Bankolé, Isaach 10 Drama 0 0 0 0 0 0 0 1 0 0 0 0 0 1 6 0 0 0 0 1 1
1980 n15115 Calzone, Maria Pia 11 Thriller 0 0 0 0 0 1 2 0 0 0 0 2 0 3 1 0 0 1 0 1 0
1983 n7937 Vukotic, Milena 11 Comedy 0 0 0 0 0 1 7 0 0 0 0 0 0 1 1 0 0 1 0 0 0
2026 n9378 Westfeldt, Jennifer 10 Romance 1 0 0 0 0 2 2 1 0 0 0 0 0 2 1 0 0 0 1 0 0
2031 n11606 Williams, Lia 11 Drama 0 0 0 0 0 1 2 1 0 0 0 0 0 2 4 0 0 0 0 1 0
2042 n14444 Bolkan, Florinda 10 Thriller 0 0 0 0 0 1 0 0 0 0 0 3 0 4 1 0 0 1 0 0 0
2060 n4380 von Franckenstein, Clement 15 Comedy 1 0 1 0 1 2 3 1 0 0 0 1 0 2 2 0 0 1 0 0 0
2127 n7017 Quinn, Francesco 12 Thriller 0 0 0 1 0 0 0 0 0 0 1 5 0 1 3 0 1 0 0 0 0
2169 n12264 Karven, Ursula 12 Drama 2 0 0 1 0 1 3 0 0 0 0 1 0 1 3 0 0 0 0 0 0
2175 n13660 Cordy, Annie 13 Music 0 0 0 0 0 0 0 1 0 1 0 0 0 7 0 0 0 3 1 0 0
2189 n13327 Dumaurier, Francis 11 Drama 0 0 1 0 0 1 2 0 1 0 0 1 0 1 3 0 0 0 0 1 0
2345 n17842 Guskov, Aleksei 10 Drama 0 0 0 1 1 0 1 0 1 0 0 1 0 0 5 0 0 0 0 0 0
2445 n17910 Wynn, Anthony 11 NaN 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0
2449 n15839 Neale, Brent 10 Thriller 0 0 1 0 0 0 2 0 0 1 0 2 0 1 1 0 0 2 0 0 0
2461 n15744 Holt, David (III) 13 Comedy 0 0 0 0 0 1 5 1 0 0 3 0 1 0 0 0 0 2 0 0 0
2480 n17882 Walsh, Darren (I) 18 Comedy 0 0 0 0 0 1 6 0 0 0 6 0 0 0 0 0 0 5 0 0 0
2499 n16829 McManus, Rove 11 Comedy 0 0 0 0 0 0 4 2 0 0 0 0 0 1 0 0 1 0 3 0 0
2502 n16888 Sterling, Rachel 11 Comedy 0 0 0 0 0 2 2 0 1 0 0 0 0 5 0 0 0 0 1 0 0
2545 n8841 Shimono, Sab 11 Thriller 0 1 0 0 0 1 1 0 0 0 0 2 0 0 2 0 0 1 1 1 1
2631 n11550 Brener, Shirly 12 Drama 0 0 0 0 0 2 2 0 0 1 0 1 0 0 6 0 0 0 0 0 0
2678 n17533 Cha, Seung-won 10 Drama 0 0 0 0 0 1 1 0 0 1 0 1 0 1 5 0 0 0 0 0 0
2768 n17447 Yankovsky, Oleg 10 Drama 0 0 0 0 0 3 1 0 0 0 0 0 0 1 4 0 0 0 0 0 1
2802 n16072 Azizi, Anthony 11 Comedy 1 0 0 0 0 1 2 0 0 1 0 1 0 4 1 0 0 0 0 0 0
2838 n4049 Fox, Emilia 18 Drama 2 0 0 0 0 2 1 0 0 0 0 1 0 1 6 0 0 3 1 1 0
2882 n8421 Landry, Ali 14 Action 0 1 0 2 0 0 1 0 0 0 0 0 0 5 1 0 0 1 2 0 1
2923 n8454 Robinson, Andrew (I) 10 Sci-Fi 0 0 0 1 0 0 1 0 0 1 0 0 0 3 0 0 0 0 3 0 1
2979 n5718 Anthony, Lysette 16 Thriller 0 0 0 0 0 0 0 1 0 2 0 7 0 0 4 0 0 0 1 0 1
2980 n10394 Canals, Maria 10 Comedy 0 0 1 0 1 1 3 0 0 0 0 1 0 0 2 0 1 0 0 0 0
3000 n4976 Kober, Jeff 18 Drama 1 0 0 2 0 1 1 0 1 0 0 2 0 2 5 0 1 0 1 0 1
3039 n10691 Babcock, Todd 16 Romance 1 0 2 1 0 2 1 0 1 1 0 1 0 2 1 0 0 3 0 0 0
3049 n6746 Kerman, Ken 10 Drama 1 0 0 0 0 2 1 0 0 0 0 1 1 0 3 0 0 1 0 0 0
3065 n6587 Krauss, Naomi 13 Crime 0 0 0 0 0 0 1 0 7 0 0 0 0 0 4 0 0 0 1 0 0
3120 n17477 Tokiwa, Takako 11 Romance 0 0 1 0 0 4 0 0 0 0 0 1 0 4 1 0 0 0 0 0 0
3156 n15221 Thomas, Naím 11 Music 0 0 0 0 0 0 2 2 0 0 0 1 1 0 1 1 0 2 0 1 0
3165 n13904 Mills, Judson 12 Thriller 0 0 0 1 0 1 1 0 0 1 0 3 0 1 2 0 0 0 0 1 1
3167 n17242 Tjalsma, Joke 10 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 6 3 0 0 0 0 0 0
3248 n4082 McMurtry, Michael 10 Drama 0 0 0 0 0 2 1 0 0 0 0 0 0 1 4 0 0 2 0 0 0
3249 n15810 Kirk, Justin 11 Comedy 0 0 0 0 0 3 3 0 0 0 0 2 0 0 2 0 0 1 0 0 0
3267 n6367 Agenin, Béatrice 13 Drama 0 0 0 1 0 0 1 0 1 0 0 0 0 7 1 0 0 2 0 0 0
3269 n17807 Levy, Nir (I) 10 Drama 0 0 0 0 0 2 2 0 0 0 0 0 0 0 6 0 0 0 0 0 0
3288 n13653 Sola, Catherine 10 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 4 4 0 0 0 0 0 0
3297 n7395 Rogan, Joe 10 Comedy 0 0 0 1 1 0 4 0 0 0 0 0 0 3 0 0 1 0 0 0 0
3312 n9301 Strozier, Henry 13 Comedy 0 0 0 1 0 0 3 1 0 0 0 1 0 3 1 0 0 0 2 1 0
3350 n10677 Bennett, Fran (I) 10 Drama 0 0 0 0 0 1 0 0 0 0 0 1 0 1 3 0 1 2 1 0 0
3457 n16492 Garner, Kelli 11 Drama 0 0 0 0 0 1 2 0 0 0 0 0 0 1 4 0 0 3 0 0 0
3485 n14930 Carroll, Justin 12 Drama 0 0 0 1 0 0 1 0 0 2 0 2 0 2 2 0 0 1 0 0 1
3518 n17406 Alvarez, Juan Luis 18 Musical 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 3 11 0 0
3527 n11855 Wildbolz, Klaus 10 Drama 0 0 0 0 0 1 0 0 0 0 0 0 0 7 2 0 0 0 0 0 0
3568 n13498 Fallenstein, Karina 10 Drama 0 0 0 0 0 2 0 0 1 0 0 0 0 3 4 0 0 0 0 0 0
3570 n11424 Walker, Polly (II) 12 Drama 0 0 0 1 0 0 1 0 1 1 0 1 0 0 6 0 0 0 0 1 0
3595 n17708 Mims, Roxzane T. 10 Drama 0 0 0 0 0 0 1 0 0 0 0 1 0 4 2 0 0 1 0 0 1
3602 n7439 Brady, Orla 12 Drama 0 0 0 0 0 2 0 0 0 0 0 1 0 1 7 0 1 0 0 0 0
3606 n14262 Maddox, Billy 16 Sci-Fi 0 0 0 0 2 0 1 0 0 0 0 2 0 5 1 0 0 2 0 0 3
3613 n13008 Damien (III) 11 Adult 0 9 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0
3635 n11858 Ullmann, Kostja 12 Romance 0 0 0 0 0 3 1 0 2 0 0 0 0 3 2 0 0 1 0 0 0
3717 n10869 Lawrence, Sharon 16 Drama 0 0 0 0 0 2 2 0 0 1 0 3 0 3 3 0 0 1 1 0 0
3736 n15586 Gibbons, Leeza 10 Family 0 0 0 0 2 0 0 0 0 1 0 0 0 2 2 0 0 0 3 0 0
3815 n15121 Lawson, Denis 13 Drama 1 0 0 0 0 1 0 1 0 0 0 1 0 2 4 0 1 0 2 0 0
3817 n2818 Craig, Andrew (I) 10 Adventure 0 0 1 0 1 1 0 0 1 0 0 2 0 0 2 0 2 0 0 0 0
3886 n11364 Chamberlin, Kevin 11 Drama 0 1 0 0 1 1 0 0 1 0 0 2 0 0 4 0 0 0 0 1 0
3910 n16120 Matsushita, Yuki 11 Drama 0 0 0 0 1 0 3 0 0 0 0 0 0 4 3 0 0 0 0 0 0
3919 n17295 Bubber 12 Family 0 0 0 0 1 0 0 0 0 0 0 0 0 4 0 0 0 1 6 0 0
3997 n7793 Stover, George 11 Sci-Fi 2 0 0 0 0 0 1 0 0 2 0 1 0 2 0 0 0 0 0 0 3
4053 n15667 Johnson, Rick (I) 10 Thriller 0 0 0 0 0 2 1 0 0 0 0 2 0 1 2 0 0 1 0 0 1
4093 n10277 Pickles, Carolyn 10 Drama 0 0 1 0 0 0 3 0 0 0 0 0 0 2 4 0 0 0 0 0 0
4111 n13082 Cannatella, Trishelle 11 Comedy 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 7 0 0
4150 n13924 Franek, Ivan 10 Drama 0 0 0 0 0 1 0 0 1 0 0 0 0 2 5 0 1 0 0 0 0
4166 n7438 Petrucci, Luigi (I) 10 Comedy 0 0 0 0 0 2 2 0 0 0 0 1 0 3 2 0 0 0 0 0 0
4174 n2009 Cutzarida, Ivo 13 Drama 0 0 0 1 0 1 2 0 0 0 0 1 0 1 6 0 0 1 0 0 0
4242 n13790 Moritz, Dorothea 10 Thriller 0 0 0 0 0 0 0 0 1 0 0 2 0 4 1 0 0 1 0 1 0
4247 n9922 Caparrós, Alonso 12 Musical 0 0 0 0 0 0 1 0 0 0 0 0 2 6 2 0 1 0 0 0 0
4284 n16376 Riemelt, Max 11 Comedy 0 0 0 0 1 0 3 0 0 0 0 1 0 2 2 0 1 0 0 1 0
4293 n10150 Yenque, Jose 10 Drama 0 0 0 0 0 0 0 0 1 0 0 2 0 1 5 0 0 1 0 0 0
4307 n11006 Ellis, Aunjanue 16 Drama 0 0 0 0 0 1 3 0 0 0 0 0 0 1 9 0 0 2 0 0 0
4335 n1229 Kae-Kazim, Hakeem 10 Drama 0 0 0 0 0 0 1 0 0 0 1 0 0 1 5 0 1 0 0 1 0
4343 n10824 Buendía, Rafael 20 Action 0 0 0 13 0 0 4 0 0 0 0 1 0 0 2 0 0 0 0 0 0
4427 n393 Langton, Brooke 12 Drama 0 0 0 0 1 1 2 0 0 0 0 3 0 0 4 0 0 0 1 0 0
4463 n16799 Mailhouse, Robert 10 Drama 1 0 0 0 0 3 0 0 1 0 0 0 0 1 3 0 0 0 1 0 0
4510 n15916 Desverchère, Jocelyne 10 Romance 0 0 0 0 0 2 0 0 0 0 0 0 0 1 2 0 0 5 0 0 0
4735 n16369 Barry, Rod 12 Adult 0 4 0 0 0 0 0 0 0 0 0 1 0 5 0 0 0 1 1 0 0
4757 n7575 Linden, Hal 10 Thriller 1 0 0 0 0 1 1 1 0 0 0 3 0 1 0 0 0 0 1 0 1
4773 n14745 Deret, Jean-Claude 10 Comedy 0 0 0 0 1 1 2 0 0 1 0 1 0 2 0 0 0 1 1 0 0
4789 n9516 Berman, Andy 11 Romance 0 0 0 0 0 3 3 0 0 0 0 0 0 2 2 0 0 0 0 0 1
4831 n16250 Abbas, Hiyam 13 Drama 0 0 0 0 0 0 0 0 0 0 0 0 0 3 6 0 0 3 0 1 0
4996 n883 Alexander, Flex 14 Drama 1 0 1 0 0 2 2 0 0 1 0 2 0 1 3 0 0 0 0 0 1
5075 n4892 Reid, Mike (I) 10 Comedy 0 0 0 0 0 0 5 0 0 0 0 2 0 0 1 0 0 0 2 0 0
5081 n17410 Tamura, Eriko 16 Drama 0 0 0 0 0 0 1 0 1 0 0 0 0 11 2 0 0 0 0 1 0
5104 n13885 Caldwell, L. Scott 11 Drama 0 0 0 0 0 1 0 0 1 0 0 2 0 2 4 0 0 0 0 0 1
5175 n11421 Loughlin, Lori 13 Drama 1 0 1 0 0 0 2 0 0 0 0 1 0 1 7 0 0 0 0 0 0
5219 n5530 Brennan, Eileen 10 Drama 0 0 1 0 0 0 3 0 0 0 0 0 0 1 4 0 0 1 0 0 0
5244 n6383 Parfitt, Judy 12 Drama 0 0 0 0 0 1 1 0 0 0 0 3 0 0 6 0 0 0 0 1 0
5284 n6902 Hipp, Paul (I) 10 Drama 0 0 0 0 0 0 1 0 1 1 0 1 0 1 4 0 0 0 0 0 1
5330 n8118 Mari, Gina 10 Drama 1 0 0 0 0 0 1 0 0 0 0 2 0 1 2 0 0 1 1 0 1
5341 n15316 Miller, Kristen 10 Comedy 1 0 1 0 0 0 4 0 0 1 0 2 0 0 0 0 0 0 0 1 0
5383 n3640 Coogan, Keith 10 Drama 0 0 0 1 0 1 0 0 0 0 0 2 0 1 4 0 0 1 0 0 0
5441 n12123 Lyles, Leslie 12 Drama 0 0 0 0 0 1 1 0 0 0 0 1 0 3 4 0 0 2 0 0 0
5505 n17859 Soriat, Bettina 10 Music 0 0 0 0 0 1 0 6 0 0 0 0 0 3 0 0 0 0 0 0 0
5527 n8842 Flaherty, Lanny 10 Drama 1 1 1 0 1 1 0 0 0 1 0 0 0 0 4 0 0 0 0 0 0
5577 n15479 Rosen, Beatrice 12 Comedy 0 0 0 0 1 1 3 0 0 0 0 1 0 4 1 0 0 1 0 0 0
5636 n3011 Havers, Nigel 13 Drama 0 0 0 0 0 1 2 1 0 1 0 1 0 1 4 0 0 0 2 0 0
5651 n10167 Kiely, Mark 10 Thriller 0 0 0 0 0 1 0 0 0 1 0 2 0 1 1 0 0 2 0 0 2
5714 n3861 Kraljevic, Ivan 11 Action 1 0 0 2 1 1 1 0 0 0 0 0 0 2 1 0 1 0 1 0 0
5730 n15953 Baker, George (I) 10 Fantasy 1 1 2 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 2 0 0
5857 n12156 Rodríguez, Marco (I) 10 Comedy 1 1 0 2 0 0 2 0 0 1 0 0 0 0 2 1 0 0 0 0 0
5879 n2048 Gossett, Robert 11 Drama 1 0 0 1 0 0 0 0 0 0 0 2 0 0 5 0 0 1 0 0 1
5909 n12909 Marchelletta, Jeff 11 Thriller 1 0 0 0 1 0 0 0 0 3 0 4 0 0 1 0 0 1 0 0 0
5957 n2131 Jordan, Leslie 10 Comedy 0 0 0 0 0 0 4 0 0 0 0 1 0 2 2 0 0 1 0 0 0
5998 n3797 Jones, January (I) 10 Drama 0 0 0 0 0 3 1 0 0 0 0 0 0 1 5 0 0 0 0 0 0
6010 n7292 Mitchum, Christopher 10 Thriller 0 0 0 1 0 0 0 0 1 1 0 2 0 4 0 0 0 0 0 0 1
6037 n8050 Elias, Cyrus 10 Thriller 0 0 0 1 0 0 1 0 1 1 0 2 0 1 1 0 0 2 0 0 0
6050 n3822 Howerton, Charles 10 Comedy 0 0 0 0 0 0 3 0 0 1 0 1 0 0 1 0 0 1 1 0 2
6113 n16606 Brady, Moya 10 Drama 0 0 0 0 0 1 0 0 0 0 0 2 0 3 2 0 0 2 0 0 0
6142 n2823 Dent, Cheryl 15 Thriller 1 0 0 0 0 0 2 0 1 1 0 3 0 5 0 0 0 0 1 0 1
6165 n16766 Rivière, Marie 11 Drama 0 0 0 0 0 2 0 0 0 0 0 0 0 1 6 0 0 2 0 0 0
6225 n14123 Coulson, Lindsey 13 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 1 9 0 0 0 1 0 0
6281 n17903 Lähde, Ville (I) 10 Horror 0 0 0 0 0 0 2 0 0 3 0 0 0 1 1 0 0 2 0 0 1
6282 n17901 Alexander, Sharon (I) 11 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 0 8 0 0 1 0 0 0
6287 n13828 Hayes, David C. 16 Horror 0 0 0 0 0 0 3 0 0 4 0 0 0 3 1 1 0 4 0 0 0
6301 n17076 Perine, Kelly 12 Comedy 0 0 0 0 0 1 5 0 0 1 0 2 0 1 2 0 0 0 0 0 0
6367 n17822 Lee, Mark (X) 10 Comedy 0 0 0 0 1 1 4 0 2 0 0 0 0 1 1 0 0 0 0 0 0
6385 n6396 Langham, Chris 10 Comedy 0 0 1 0 1 0 4 0 0 0 0 0 0 1 1 0 0 0 2 0 0
6418 n13967 Palmer-Stoll, Julia 14 Crime 0 0 0 0 2 1 1 0 4 0 0 3 0 1 2 0 0 0 0 0 0
6481 n5586 Marshall, Paula 11 Comedy 0 0 0 0 0 2 4 0 0 0 0 2 0 0 2 0 0 0 0 0 1
6520 n15819 O&apos;Rourke, Shaun (II) 11 Drama 0 0 0 1 0 0 0 0 0 1 1 1 0 2 2 0 0 2 0 1 0
6522 n12223 Olds, Gabriel 12 Drama 0 0 0 0 0 1 0 0 0 1 0 2 0 0 5 0 0 0 1 1 1
6585 n14945 Paxton, Sara 14 Comedy 1 0 2 0 3 1 4 0 0 1 0 0 0 0 1 0 1 0 0 0 0
6619 n5664 Theirse, Darryl 12 Comedy 0 0 0 0 0 2 3 0 2 0 0 2 0 0 2 0 0 0 0 0 1
6664 n2057 Eckhouse, James 10 Drama 0 0 0 1 1 1 1 0 0 0 0 1 0 1 3 0 0 0 1 0 0
6708 n17746 Canton, Joanna 10 Drama 1 0 0 0 0 0 1 0 0 0 0 1 0 2 3 0 0 1 0 0 1
6710 n17855 Zaki, Mona 16 Romance 0 0 1 0 0 5 3 0 0 0 0 1 0 4 2 0 0 0 0 0 0
6729 n14440 Abecassis, Yaël 10 Drama 0 0 0 0 1 1 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0
6732 n8100 Wildman, Valerie 11 Drama 0 0 0 0 0 0 1 0 0 0 0 1 0 1 4 1 0 0 1 0 2
6735 n17848 Moutsatsou, Katerina 12 Romance 0 0 0 0 0 4 2 0 1 0 0 1 0 1 3 0 0 0 0 0 0
6743 n4645 Hailer, April 13 Comedy 0 0 0 0 0 1 5 0 3 0 0 2 0 1 0 0 0 0 0 0 1
6771 n16760 Richardson, Sy 11 Drama 0 0 0 1 0 0 1 0 0 0 0 1 0 2 3 0 0 0 2 0 1
6817 n16367 Wirth, Billy 11 Sci-Fi 0 0 0 1 0 0 1 0 0 1 0 1 0 1 3 0 0 0 0 0 3
6818 n17771 Koklas, Kostas 12 Comedy 0 0 0 0 0 3 4 0 0 0 0 0 0 2 2 0 0 1 0 0 0
6819 n13049 Skye, Ione 16 Drama 0 0 0 0 0 2 1 1 0 0 0 0 0 1 10 0 0 0 1 0 0
6834 n1486 Heyl, Burkhard 10 Drama 0 0 0 1 0 1 0 0 0 0 0 1 0 2 4 0 0 0 0 1 0
6914 n2130 Borlenghi, Matt 10 Thriller 0 0 0 0 0 0 3 0 1 0 0 4 0 1 0 0 0 0 0 0 1
7012 n17514 Amandla 14 Adult 0 7 0 0 0 0 1 0 0 0 0 0 0 5 0 0 0 0 1 0 0
7066 n17425 Malmberg, Claes 10 Comedy 0 0 0 0 3 0 3 0 0 0 0 0 0 1 1 0 0 2 0 0 0
7108 n8866 Martin, Rémi 13 Drama 0 0 0 0 0 1 1 0 0 0 1 0 0 4 3 0 0 3 0 0 0
7159 n17841 Anderson, Fred (III) 12 Thriller 0 0 1 0 0 0 1 0 0 2 1 3 0 0 0 0 0 2 1 0 1
7245 n14250 Canovas, Anne 10 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 5 2 0 0 1 0 0 0
7258 n7792 Chamish, Leanna 11 Horror 0 0 0 0 0 0 0 0 0 3 0 1 0 0 1 0 1 1 3 0 1
7279 n15273 Gilliard, Carl 11 Comedy 0 0 0 0 0 1 4 0 0 0 0 1 0 2 3 0 0 0 0 0 0
7340 n5084 Bémol, Brigitte 12 Thriller 0 0 0 0 0 1 1 0 0 0 0 2 0 6 1 0 0 1 0 0 0
7367 n13853 Azurdia, Richard 14 Comedy 0 0 0 2 0 0 2 0 0 2 0 1 0 2 0 0 1 4 0 0 0
7442 n8902 Andrei, Lydia 11 Thriller 0 0 0 0 0 0 1 0 0 0 0 3 0 5 2 0 0 0 0 0 0
7474 n16149 Murray, Duane 10 Sci-Fi 0 0 1 0 0 0 1 0 0 0 0 1 0 2 2 0 0 1 0 0 2
7484 n9297 Romanov, Stephanie 10 Thriller 0 0 0 1 0 0 0 0 0 0 0 1 0 3 1 0 0 2 1 1 0
7515 n16668 Perkins, Jack (III) 94 NaN 0 0 0 0 0 0 0 0 0 0 0 0 0 24 0 0 0 0 70 0 0
7516 n6989 Oxenberg, Catherine 11 Thriller 0 0 0 0 0 0 0 0 0 0 0 7 0 1 2 0 1 0 0 0 0
7554 n17852 Shalabi, Menna 10 Drama 0 0 0 0 0 2 1 0 0 0 0 0 0 4 3 0 0 0 0 0 0
7571 n14944 Pilato, Joseph 10 Horror 0 0 1 0 0 1 0 0 1 2 0 1 0 2 1 0 0 0 0 0 1
7572 n7594 Salsedo, Frank 10 Comedy 0 0 1 1 0 0 2 0 0 0 0 0 0 2 1 1 1 1 0 0 0
7721 n8092 Malco, Romany 12 Comedy 0 0 0 0 0 0 4 1 0 0 0 2 0 1 3 0 0 0 0 1 0
7765 n3588 Gould, Geoffrey 10 Drama 0 0 0 0 0 1 1 1 0 0 0 0 0 2 3 0 1 0 0 0 1
7769 n8344 Chin, Tsai (I) 12 Thriller 0 0 0 0 0 2 0 0 0 0 1 3 0 1 3 0 1 1 0 0 0
7781 n9176 Deshors, Erick 11 Drama 0 0 0 0 0 0 1 0 1 0 0 1 0 7 1 0 0 0 0 0 0
7808 n16360 Livingston, Richard 10 Crime 0 0 0 1 0 1 1 0 2 0 0 1 0 2 0 0 0 2 0 0 0
7887 n17395 Hill, Nicholas (I) 10 Action 0 0 0 4 0 0 0 0 1 0 0 3 0 1 0 1 0 0 0 0 0
7893 n7016 Taylor, Mark L. 12 Comedy 0 0 1 0 1 0 4 0 0 1 1 0 0 0 2 0 1 1 0 0 0
7926 n9298 Makinen, Karl 11 Drama 0 0 0 0 0 2 2 0 1 1 0 0 0 0 4 0 0 0 0 1 0
7932 n17575 Dawes, Bill 10 Drama 0 0 1 1 1 1 1 0 0 0 0 0 0 2 2 0 0 1 0 0 0
7987 n10975 Ritter, Jason 10 Drama 0 0 2 0 0 0 1 1 0 0 0 0 0 3 2 0 0 1 0 0 0
8103 n15816 Sky, Jennifer 10 Drama 1 0 1 0 0 1 1 0 0 0 0 0 0 2 3 0 0 0 0 0 1
8113 n469 Strickland, KaDee 10 Drama 0 0 0 0 0 1 0 0 0 0 0 2 0 0 7 0 0 0 0 0 0
8182 n13368 Holmes, Teck 11 Comedy 0 0 0 0 0 1 2 1 0 0 0 0 0 4 2 0 1 0 0 0 0
8218 n10108 Katona, Kerry 11 Music 0 0 0 0 0 0 0 3 0 0 0 1 0 1 1 0 0 0 5 0 0
8359 n12385 Quinton, Sophie 10 Drama 0 0 0 0 0 0 0 0 0 0 0 0 0 2 5 0 0 3 0 0 0
8463 n15186 Bremmer, Richard 12 Fantasy 0 0 3 0 0 0 1 0 0 0 0 2 0 1 3 0 0 1 0 1 0
8499 n13125 Tortosa, Silvia 11 Drama 0 0 0 0 0 0 2 0 0 0 0 1 0 1 3 0 1 3 0 0 0
8500 n6380 Donovan, Daisy 10 Music 1 0 0 0 0 0 2 2 0 0 0 0 0 3 1 0 0 0 0 0 1
8542 n214 Bergé, Francine 13 Drama 0 0 0 0 0 0 2 0 0 0 0 2 0 1 5 0 0 3 0 0 0
8624 n12303 Botone, Talia 10 Horror 0 0 0 0 0 1 1 0 0 1 0 0 0 6 1 0 0 0 0 0 0
8648 n3151 Tigar, Kenneth 11 Drama 1 0 0 0 0 0 1 0 1 0 0 0 0 4 3 0 1 0 0 0 0
8716 n2821 McCoy, Andre 11 Crime 0 0 0 2 0 0 2 0 4 0 0 1 0 0 1 0 1 0 0 0 0
8767 n14866 Macaninch, Cal 14 Drama 1 0 0 1 0 0 0 0 0 0 0 2 0 2 6 0 0 2 0 0 0
8822 n8926 Lecas, Jean-Claude 11 Drama 0 0 0 0 0 2 1 0 0 0 0 1 0 2 2 0 0 3 0 0 0
8904 n13292 Lee, Eun-ju (II) 10 Romance 0 0 0 0 0 3 0 0 0 1 0 2 0 2 2 0 0 0 0 0 0
8920 n1461 Shaw, Vinessa 11 Drama 1 0 0 0 0 2 1 0 1 0 0 1 0 0 4 0 1 0 0 0 0
8956 n2065 Shonka, J. Scott 11 War 0 0 0 1 0 0 0 0 0 1 0 3 0 0 1 0 0 1 1 3 0
9030 n13802 Hutcherson, Josh 11 Drama 0 0 0 0 1 1 2 0 0 0 2 0 0 1 3 0 1 0 0 0 0
9087 n16943 Mennegand, Élodie 12 Drama 0 0 0 0 0 0 1 0 1 0 0 0 0 4 2 0 0 4 0 0 0
9094 n5982 Jade, Claude 14 Thriller 0 0 1 0 1 0 0 0 0 0 0 2 0 4 2 0 0 2 2 0 0
9182 n10319 Zibetti, Roberto 10 Drama 0 0 0 0 0 0 1 0 0 0 0 1 0 2 5 0 0 0 0 1 0
9214 n17008 Colvin, Shawn 10 Music 0 0 0 0 0 0 0 9 0 0 0 0 0 1 0 0 0 0 0 0 0
9289 n10246 Gosling, Ryan (I) 13 Drama 0 0 1 0 0 2 2 0 1 0 0 1 0 1 4 0 1 0 0 0 0
9306 n16412 Marewski, Armin 10 Crime 0 0 0 0 0 1 0 0 2 0 0 2 0 1 1 0 0 2 0 1 0
9330 n10976 McCallany, Holt 16 Drama 1 0 0 2 0 0 0 0 0 0 0 2 0 0 10 1 0 0 0 0 0
9409 n12162 Bergere, Jenica 14 Comedy 0 0 0 0 0 1 5 0 0 1 0 2 0 2 2 0 1 0 0 0 0
9417 n11262 McKinnon, Megan 10 Drama 0 0 1 0 0 2 1 0 0 0 0 0 0 0 2 0 0 4 0 0 0
9434 n9958 Manilow, Barry 10 Music 0 0 0 0 0 1 0 6 0 0 0 0 0 1 0 0 0 0 2 0 0
9486 n17139 Cayo, Fernando 10 Comedy 0 0 0 0 1 0 3 0 0 0 0 1 0 2 2 0 0 1 0 0 0
9511 n12781 Kouyaté, Sotigui 17 Drama 0 0 0 0 0 1 0 0 0 0 0 2 0 8 5 0 0 1 0 0 0
9530 n1462 Henshaw, Lee 12 Adult 1 4 0 0 0 2 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0
9664 n15008 Booth, Emily 18 Comedy 0 0 0 0 0 0 3 1 0 1 0 1 0 7 1 0 0 2 1 0 1
9687 n11951 Sciò, Yvonne 13 Comedy 0 1 0 1 0 0 3 0 0 0 0 3 0 1 1 0 0 1 2 0 0
9693 n16805 De Neck, Didier 11 Drama 0 0 0 0 0 1 2 0 0 0 0 0 0 3 3 0 0 1 0 1 0
9732 n13394 Moffett, D.W. 14 Drama 0 0 0 0 0 1 3 0 0 0 0 0 0 0 9 0 0 1 0 0 0
9756 n9159 Shimizu, Tsuyu 12 Drama 1 0 0 1 0 2 1 0 0 0 0 0 0 4 2 0 0 1 0 0 0
9810 n2808 Sarabia, Ric 11 Thriller 0 0 1 1 0 0 1 0 2 1 0 5 0 0 0 0 0 0 0 0 0
9813 n17911 Bang, Eun-jin 11 Drama 0 0 0 0 0 2 1 0 0 0 0 1 0 0 6 0 0 0 0 0 1
9870 n5793 Watson, Tom (I) 10 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 4 5 0 0 0 0 0 0
9875 n17409 Rhys, Ieuan 10 Drama 0 0 0 0 0 1 0 0 0 0 0 1 0 4 4 0 0 0 0 0 0
9910 n8346 Rasche, David 15 Comedy 0 0 1 0 1 1 4 0 1 0 0 0 0 2 4 0 0 1 0 0 0
9925 n7355 Mealing, Amanda 10 Drama 0 0 0 1 0 0 1 0 0 0 0 0 0 1 7 0 0 0 0 0 0
9930 n11091 Howard, Ken (I) 13 Drama 0 0 0 0 1 1 0 0 0 0 0 3 0 2 4 0 0 1 1 0 0
9964 n12693 Witter, Frank 15 Comedy 0 0 0 1 1 2 3 0 1 0 0 1 0 2 1 0 0 2 0 1 0
10048 n449 Jostyn, Jennifer 15 Drama 0 0 0 2 0 2 1 0 0 2 0 1 0 3 4 0 0 0 0 0 0
10062 n9066 Sucharetza, Marla 13 Comedy 0 0 0 0 0 1 5 0 0 0 0 2 0 1 2 0 1 1 0 0 0
10084 n17356 Broustal, Sophie 18 Drama 0 0 0 0 0 0 0 0 0 0 0 1 0 12 3 0 1 0 0 0 1
10094 n12151 Martells, Cynthia 10 Romance 1 0 0 0 1 3 0 0 0 0 1 2 0 0 2 0 0 0 0 0 0
10096 n14533 Little, Kim 12 Comedy 0 0 0 1 0 1 3 0 0 2 0 0 0 3 1 0 0 1 0 0 0
10099 n15642 Hada, Michiko 10 Drama 0 0 0 0 0 1 0 0 0 0 0 0 0 5 3 0 0 0 0 1 0
10108 n17569 Yeryomin, Vladimir 10 Drama 0 0 0 0 1 2 1 0 0 0 0 1 0 2 3 0 0 0 0 0 0
10206 n13389 Russell, Lucy 11 Drama 0 0 0 0 0 1 1 0 1 1 0 1 0 2 3 0 1 0 0 0 0
10209 n4981 Harrington, Cheryl Francis 12 Comedy 0 0 0 0 0 0 5 0 0 1 1 2 0 1 2 0 0 0 0 0 0
10259 n9163 Koundé, Hubert 13 Drama 1 0 0 0 0 0 1 0 0 0 0 1 0 5 4 0 0 1 0 0 0
10361 n2763 Schumann, Tanja 10 Comedy 0 0 1 0 2 0 2 0 2 0 0 0 0 2 0 0 1 0 0 0 0
10410 n10589 Shire, Talia 12 Drama 0 0 0 0 0 2 2 0 0 0 0 0 0 1 6 0 0 0 1 0 0
10415 n16525 Winnick, Katheryn 13 Horror 0 0 0 1 0 2 3 0 0 3 0 0 0 0 2 0 0 1 1 0 0
10417 n6906 Coll, Ivonne 10 Thriller 2 0 0 0 0 1 0 0 0 0 0 4 0 0 1 0 0 1 0 0 1
10419 n16279 Bonacelli, Paolo 11 Comedy 0 0 0 0 0 1 3 0 0 1 0 1 0 3 2 0 0 0 0 0 0
10448 n14125 Merrells, Jason 10 Drama 0 0 0 0 0 1 0 0 0 0 0 0 0 1 6 0 0 1 1 0 0
10451 n17535 Choi, Min-su 13 Romance 0 0 0 1 0 4 2 0 0 0 0 2 0 2 1 0 1 0 0 0 0
10460 n1286 Egan, Peter (I) 11 Drama 0 0 0 0 1 0 2 0 0 0 0 2 0 2 3 0 0 0 0 0 1
10487 n16069 Taylor, LG 10 Drama 0 0 0 0 1 0 2 0 0 1 0 0 0 0 3 0 0 3 0 0 0
10609 n16995 Makise, Riho 14 Drama 0 0 0 0 0 1 0 0 0 0 0 0 0 10 3 0 0 0 0 0 0
10765 n6957 Kean, Greg 11 Drama 0 0 0 0 1 1 0 1 0 1 0 2 0 1 4 0 0 0 0 0 0
10828 n13654 Albertini, Michel 10 Thriller 0 0 0 0 0 0 0 0 1 0 0 3 0 5 1 0 0 0 0 0 0
10838 n17434 Ruslanova, Nina 10 Drama 0 0 0 0 1 1 2 0 1 0 0 0 0 1 3 0 0 0 0 1 0
10889 n15693 Chapman, Sean 11 Drama 0 0 0 1 0 0 0 0 0 0 0 3 0 1 4 0 1 1 0 0 0
10891 n17391 Schaffel, Lauren 11 Family 0 0 0 0 2 0 2 0 0 0 0 0 0 3 0 0 0 3 1 0 0
10908 n4445 Burke, Carlease (I) 10 Drama 1 0 0 0 0 1 1 1 1 1 0 0 0 0 3 0 0 1 0 0 0
10973 n14486 Boutsikaris, Dennis 13 Drama 0 0 0 0 0 2 1 0 0 0 0 2 0 0 7 0 0 0 0 0 1
11011 n8466 Spano, Vincent 14 Drama 0 0 0 0 0 0 1 0 0 0 0 3 0 1 7 0 0 0 1 0 1
11021 n15924 Provenza, Paul 10 Comedy 0 0 0 0 0 1 3 0 0 0 0 1 0 3 1 0 0 1 0 0 0
11133 n11229 Wilson, Cal (II) 10 Comedy 0 0 0 0 0 0 6 0 0 0 0 0 0 2 0 0 0 0 1 0 1
11146 n11086 Underwood, Jay (I) 16 Drama 0 0 0 1 0 2 1 0 0 0 0 3 0 1 6 0 0 1 0 0 1
11161 n16246 Sihol, Caroline 10 Drama 0 0 0 0 0 0 1 0 1 0 0 0 0 3 3 0 0 2 0 0 0
11162 n17214 Gallagher, Frank (II) 10 Comedy 0 0 0 0 0 0 2 0 0 0 0 1 0 4 0 0 0 3 0 0 0
11167 n17440 Ulyanov, Mikhail 10 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 5 4 0 0 0 0 0 0
11175 n9429 Kern, Joey 10 Romance 0 0 0 0 0 4 1 0 0 0 0 0 0 2 1 0 0 2 0 0 0
11176 n17820 Menti, Nena 10 Drama 0 0 0 0 0 2 1 0 0 0 0 0 0 2 3 0 0 1 0 1 0
11177 n10766 Milos, Sofia 10 Comedy 0 0 0 1 1 0 4 0 1 0 0 1 0 0 2 0 0 0 0 0 0
11194 n15231 Messuri, LoriDawn 13 Thriller 0 1 0 0 0 0 0 0 2 1 0 3 0 3 2 0 0 1 0 0 0
11234 n17775 Kianian, Reza 11 Thriller 0 0 0 0 1 0 0 0 0 0 0 2 0 6 2 0 0 0 0 0 0
11255 n15933 Idiz, Nurseli 11 Drama 0 0 0 0 0 0 2 0 0 0 0 0 0 3 5 0 1 0 0 0 0
11284 n16916 Garcia, Aimee 10 Drama 0 0 1 0 2 1 2 0 0 0 0 0 0 1 3 0 0 0 0 0 0
11292 n15173 Graham, Julie (I) 11 Drama 0 0 0 0 0 2 1 0 0 0 0 1 0 0 7 0 0 0 0 0 0
11330 n515 Bron, Eleanor 10 Drama 1 0 2 0 0 2 1 0 0 0 0 0 0 1 2 0 0 0 0 0 1
11397 n8804 Fitzpatrick, Leo 15 Drama 0 0 1 1 0 1 1 0 1 0 0 2 0 1 3 0 0 1 2 0 1
11403 n583 Kasper, Gary 12 Sci-Fi 0 0 1 1 0 0 1 0 0 1 0 2 0 2 1 0 1 0 0 0 2
11421 n14858 Gorski, Tamara 10 Sci-Fi 0 0 0 0 0 1 0 0 0 1 0 1 0 2 2 0 0 0 0 1 2
11436 n17411 Fukaura, Kanako 10 Drama 0 0 1 0 0 3 0 0 0 0 0 0 0 1 4 0 0 0 0 1 0
11439 n17854 Tork, Hanan 13 Romance 0 0 0 0 0 3 3 0 0 0 0 0 0 5 2 0 0 0 0 0 0
11500 n7103 Spencer-Nairn, Tara 12 Comedy 1 0 0 0 1 1 4 0 0 1 0 1 0 2 0 0 0 0 0 0 1
11526 n10084 Tweeden, Leeann 11 Music 0 0 0 1 0 0 0 1 0 0 0 0 0 7 0 0 0 0 2 0 0
11566 n17613 Hamilton, Emily 12 Drama 1 0 0 0 0 1 1 0 0 0 0 1 0 1 7 0 0 0 0 0 0
11627 n13317 Ferguson, Tim (I) 10 Comedy 0 0 0 0 0 0 4 0 0 0 0 0 0 6 0 0 0 0 0 0 0
11648 n4041 Owen, Lloyd 12 Romance 0 0 0 0 1 2 1 0 0 0 0 1 0 2 1 0 1 2 0 1 0
11678 n12127 Drukarova, Dinara 11 Drama 0 0 0 0 0 3 0 0 0 0 0 0 0 1 5 0 0 2 0 0 0
11768 n1500 Ryan, Mitch 12 Drama 1 0 1 0 0 0 1 0 0 0 0 3 0 0 3 0 0 1 1 0 1
11851 n17847 Haralambidis, Renos 11 Comedy 0 0 0 0 0 3 5 0 1 0 0 0 0 1 1 0 0 0 0 0 0
11881 n6828 Porizkova, Paulina 10 Comedy 1 0 0 0 0 2 3 0 0 1 0 1 0 0 1 0 0 0 1 0 0
11892 n16340 Zappa, Ahmet 10 Comedy 0 0 0 0 0 0 3 0 0 0 0 1 0 4 0 0 0 1 0 0 1
11916 n4902 Ba, Inday 10 Thriller 0 0 0 0 1 1 1 0 1 0 0 3 0 1 2 0 0 0 0 0 0
11935 n16965 Okada, Yoshinori 10 Drama 0 0 0 0 0 1 3 0 0 0 0 0 0 2 4 0 0 0 0 0 0
12071 n17105 Ashbourne, Jayne 14 Drama 1 0 0 1 0 0 1 0 0 0 0 1 0 4 5 0 1 0 0 0 0
12091 n17734 Cass, John (I) 11 Comedy 1 0 0 0 0 0 1 0 0 0 0 0 0 4 1 1 0 0 3 0 0
12101 n10837 Peldon, Ashley 13 Comedy 2 0 1 0 1 0 3 0 0 0 0 0 0 4 2 0 0 0 0 0 0
12126 n14871 Speer, Hugo 11 Drama 0 0 1 0 0 0 1 0 0 0 0 1 0 3 4 0 0 0 0 1 0
12143 n11466 Cray, Ed 11 Drama 0 0 0 1 0 0 1 0 1 0 0 2 0 3 3 0 0 0 0 0 0
12174 n4242 Gibney, Susan 11 Drama 0 0 0 0 0 2 2 0 0 0 0 3 0 1 3 0 0 0 0 0 0
12231 n5947 Czischek, Elke 10 Comedy 0 0 0 0 0 0 3 0 3 0 0 1 0 2 1 0 0 0 0 0 0
12239 n5866 Bohm, Marquard 12 Thriller 0 0 0 0 0 1 0 0 1 0 0 4 0 2 2 0 0 1 0 0 1
12258 n8410 Bergeron, Philippe (I) 13 Thriller 0 0 0 0 0 1 2 0 0 1 0 4 0 2 1 0 0 2 0 0 0
12271 n14400 Rubin, Jennifer 17 Thriller 0 1 0 0 0 1 1 0 0 0 0 4 0 2 3 0 1 0 0 0 4
12276 n5490 Gillette, Anita 12 Comedy 0 0 0 0 0 1 4 0 0 0 0 0 0 1 4 0 0 1 1 0 0
12309 n4044 Thomson, Kristen 10 Drama 0 0 0 0 0 1 0 0 0 0 1 0 0 1 4 0 0 3 0 0 0
12368 n16408 Gabriela, Marília 11 Drama 0 0 0 0 0 1 1 1 0 0 0 0 0 5 2 0 0 0 1 0 0
12371 n8463 Davis, William Stanford 14 Romance 0 0 0 0 0 2 1 0 0 1 0 2 0 2 2 0 0 4 0 0 0
12402 n17635 Vanthielen, Francesca 12 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 4 5 0 0 0 1 0 0
12437 n14102 Stewart, Will (I) 12 Drama 0 0 0 1 0 1 0 0 1 0 0 2 0 3 4 0 0 0 0 0 0
12456 n9220 Seigner, Emmanuelle 14 Comedy 2 0 1 0 0 0 3 0 0 0 0 2 0 1 2 0 0 1 0 1 1
12642 n17801 Hristov, Ivaylo 10 Drama 0 0 0 0 0 0 1 0 1 0 0 0 0 2 3 0 0 3 0 0 0
12693 n8816 Michaels, Rhino 11 Drama 1 0 0 0 0 0 2 0 0 1 0 1 0 1 3 0 0 0 0 0 2
12709 n16370 Riker, Robin 11 Comedy 1 0 0 0 1 0 3 0 0 0 0 1 0 2 1 0 0 1 1 0 0
12716 n17200 Georgakis, Nikos 15 Drama 0 0 0 0 1 2 2 0 0 0 0 0 0 0 8 0 0 2 0 0 0
12747 n17723 Wang, Zhiwen 10 Drama 0 0 0 0 0 2 0 0 0 0 0 0 0 2 5 0 0 0 0 1 0
12772 n17865 Mizuki, Arisa 11 Drama 0 0 0 0 0 1 2 0 0 0 0 0 0 5 3 0 0 0 0 0 0
12827 n12193 Rinaldi, Renzo 11 Comedy 0 0 0 0 0 1 3 0 0 1 0 1 0 5 0 0 0 0 0 0 0
12934 n17750 Bal, Kenan 11 Drama 0 0 0 0 0 2 0 0 0 0 0 0 0 1 4 0 2 0 1 1 0
12953 n12899 Lavandier, Luc 11 Thriller 0 0 0 0 0 0 0 0 1 0 0 2 0 7 1 0 0 0 0 0 0
12981 n16631 Servais, Manuela 11 Drama 0 0 0 0 0 0 0 0 0 0 0 0 0 5 3 0 0 2 1 0 0
12988 n8419 Lafferty, Sandra Ellis 10 Drama 0 1 0 1 0 1 0 0 0 0 0 1 0 1 3 0 1 1 0 0 0
13001 n16913 Lim, Kay Tong 11 Drama 0 0 0 0 0 2 3 0 0 0 0 1 0 0 3 0 0 1 0 1 0
13037 n14637 Zahonero, Coraly 10 Drama 0 0 0 0 0 1 1 0 0 0 0 0 0 5 2 0 0 0 1 0 0
13232 n15226 Cannon, Harold 16 Thriller 0 0 0 2 0 2 0 0 1 2 0 3 0 1 1 0 1 2 0 0 1
13244 n9236 Smith, Douglas (VI) 13 Thriller 0 0 0 0 0 1 2 0 0 1 0 3 0 2 3 0 0 0 0 0 1
13271 n15578 Speck, Karsten 11 Comedy 0 0 0 0 0 1 3 0 0 0 0 1 0 4 2 0 0 0 0 0 0
13412 n15769 Mojica, Monique 18 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 1 3 0 0 0 12 0 1
13457 n16494 Brochtrup, Bill 10 Drama 0 0 0 0 0 1 1 0 0 0 0 2 0 1 3 0 0 1 0 0 1
13538 n7038 Litz, Nadia 10 Drama 0 0 1 0 0 0 0 0 0 1 0 2 0 2 2 0 0 2 0 0 0
13560 n10243 Massey, Jennifer (I) 13 Drama 0 1 0 0 0 3 1 0 0 0 0 0 0 1 4 0 0 3 0 0 0
13628 n13260 May, Roger (I) 11 Drama 0 0 0 0 0 0 0 0 0 0 0 0 0 5 3 0 1 0 1 1 0
13650 n14590 McMains, Cody 11 Drama 0 0 1 0 1 0 3 0 0 0 0 0 0 1 4 0 0 1 0 0 0
13692 n2841 Cawood, Sarah 10 Music 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 7 0 0
13699 n14269 Lesure, James 11 Comedy 1 0 0 0 0 1 2 0 1 0 0 1 0 1 1 1 0 1 1 0 0
13729 n9749 Pyper-Ferguson, John 14 Drama 0 0 0 0 0 2 2 1 0 0 0 2 0 0 4 0 0 1 0 0 2
13769 n17834 Lawlor, Gerri 10 Romance 0 0 2 0 1 2 1 0 0 0 0 0 0 1 0 0 1 2 0 0 0
13837 n11126 Baraka, Amiri 10 Drama 0 0 0 0 0 1 0 0 0 0 0 0 0 1 2 0 0 0 6 0 0
13867 n8512 Popowich, Paul 10 Drama 0 0 0 0 0 0 1 0 1 1 0 1 0 1 3 0 0 1 0 0 1
13949 n11610 Teale, Owen 11 Drama 0 0 0 0 0 0 1 1 0 1 0 1 0 3 2 0 0 0 0 1 1
13956 n7713 Bellar, Clara 13 Drama 0 0 0 0 0 3 1 0 0 1 0 0 0 4 3 0 0 1 0 0 0
14015 n16469 Dollar, Aubrey 11 Drama 0 0 0 0 0 2 1 0 0 0 0 2 0 2 3 0 0 0 1 0 0
14050 n14121 Puleston-Davies, Ian 10 Drama 0 0 0 0 1 0 2 0 0 0 0 0 0 4 3 0 0 0 0 0 0
14057 n10379 Cryston, Rob 18 Adult 0 6 0 0 0 0 1 0 0 0 0 0 0 11 0 0 0 0 0 0 0
14099 n9401 Sparber, Herschel 10 Comedy 1 0 0 1 0 1 2 1 0 0 0 2 0 1 1 0 0 0 0 0 0
14130 n13295 Heo, Jun-ho 10 Drama 0 0 1 1 0 2 1 0 0 0 0 1 0 2 2 0 0 0 0 0 0
14134 n15665 Rosete, Jose 13 Drama 0 0 0 2 0 1 0 0 2 2 0 2 0 1 2 0 0 1 0 0 0
14138 n17809 Keren, Dror 11 Drama 0 0 0 0 0 0 2 0 0 0 0 1 0 0 7 0 0 1 0 0 0
14194 n14006 Moyer, Stephen (I) 13 Drama 0 0 0 0 0 2 1 0 0 0 0 2 0 2 5 0 0 0 0 1 0
14198 n10733 Thornton, Sigrid 12 Animation 0 0 0 0 1 1 0 0 1 0 2 0 0 4 1 0 0 2 0 0 0
14206 n17883 Pickhaver, Greig 11 Comedy 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 2 0 0
14217 n2107 O&apos;Toole, Matt 10 Drama 1 0 0 0 0 1 0 0 1 0 0 0 0 0 4 0 1 2 0 0 0
14264 n13706 Schuch, Karoline 11 Romance 0 0 0 0 0 4 3 0 1 0 0 0 0 0 3 0 0 0 0 0 0
14270 n14246 Lauren, Val 11 Romance 0 0 0 0 0 3 1 0 0 1 0 2 0 1 2 0 0 0 0 1 0
14375 n11576 Cozart, Cylk 14 Drama 0 0 1 0 1 2 1 0 0 1 0 1 0 0 5 0 0 0 0 0 2
14394 n4239 Conti, Tom 12 Drama 0 0 0 0 0 1 0 0 0 0 0 1 0 1 4 0 0 0 5 0 0
14411 n4395 Hathaway, Amy (I) 10 Romance 1 0 0 0 0 2 2 0 1 0 0 0 0 1 2 0 0 0 0 0 1
14421 n1544 Ové, Indra 11 Sci-Fi 0 0 0 0 0 1 0 0 0 0 0 1 0 0 3 0 0 2 0 0 4
14430 n6860 Vernon, Kate 12 Comedy 0 0 0 0 0 1 3 0 0 0 0 3 0 1 2 0 1 1 0 0 0
14501 n14582 Clark, Marsha 10 Comedy 0 0 0 1 2 0 2 0 0 1 0 0 0 1 1 0 0 2 0 0 0
14575 n11753 Conde, Fernando 10 Comedy 0 0 0 0 0 0 6 0 0 0 0 0 0 2 2 0 0 0 0 0 0
14618 n12222 Pickett, Cindy 10 Thriller 0 0 0 0 0 0 1 0 0 0 0 3 0 2 2 0 1 0 0 0 1
14639 n5581 Bell, Kristen (I) 10 Drama 0 0 1 1 0 0 1 0 1 0 0 1 0 0 5 0 0 0 0 0 0
14713 n14754 Pallas, Cécile 10 Romance 0 0 0 0 0 2 0 0 1 0 0 1 0 4 0 0 1 1 0 0 0
14731 n13393 Gidley, Pamela 14 Comedy 1 0 0 0 0 2 3 0 2 1 0 1 0 1 2 0 0 0 1 0 0
14738 n17390 Praetorius, Friedrich Karl 10 Crime 0 0 0 0 0 0 1 0 4 0 0 2 0 3 0 0 0 0 0 0 0
14755 n15059 Jett, Joan 12 Music 0 0 0 0 0 1 0 3 0 0 0 1 0 2 2 0 0 1 2 0 0
14828 n13582 Fazira, Erra 13 Romance 0 0 0 0 0 9 0 0 1 0 1 0 0 2 0 0 0 0 0 0 0
14930 n3567 Gordon, Pamela (I) 17 Drama 0 0 0 0 0 1 2 0 1 0 0 0 0 1 6 0 0 3 1 0 2
14936 n13649 Solka, Gunnar 12 Thriller 0 0 1 0 0 1 0 0 0 0 0 2 0 2 2 0 0 4 0 0 0
15022 n9253 O&apos;Keefe, Michael 10 Comedy 0 0 1 0 0 1 4 0 0 0 0 0 0 0 3 0 0 1 0 0 0
15033 n473 Glaser, Paul Michael 10 Crime 1 0 0 0 0 0 0 0 2 0 0 0 0 2 1 0 0 3 1 0 0
15047 n10153 Taylor, Regina (I) 11 Drama 1 0 0 0 0 0 0 0 1 0 0 2 0 0 7 0 0 0 0 0 0
15053 n15951 Robinson, Charles (I) 14 Drama 0 0 0 0 1 1 1 0 0 0 0 1 0 1 5 1 0 2 0 0 1
15071 n8098 Guillory, Bennet 10 Drama 0 0 0 0 0 0 1 0 0 0 0 0 0 1 3 0 0 2 1 0 2
15096 n12153 DeLizia, Cara 10 Comedy 0 0 0 1 1 0 3 0 0 0 0 1 0 2 2 0 0 0 0 0 0
15098 n15557 Moody, Ron 10 Music 0 1 0 0 0 0 1 2 0 0 0 0 0 3 1 0 0 2 0 0 0
15177 n17618 Park, Shin-yang 10 Romance 0 0 0 1 0 2 1 0 1 1 0 0 0 3 1 0 0 0 0 0 0
15197 n7505 Vogt, Paul (II) 10 Comedy 0 0 0 0 3 1 3 0 0 0 0 0 0 1 1 0 0 0 1 0 0
15227 n11149 Cowell, Brendan 10 Drama 2 0 0 1 0 0 0 0 0 0 0 1 0 0 4 0 0 1 0 0 1
15263 n15931 Alasya, Zeki 10 Comedy 0 0 0 0 0 2 6 0 0 0 0 0 0 0 2 0 0 0 0 0 0
15270 n16567 Franco, Jesus 11 Horror 0 0 0 0 0 0 0 0 0 4 0 0 0 0 1 0 0 1 5 0 0
15363 n7364 Dapkunaite, Ingeborga 12 Drama 1 0 0 0 0 0 2 0 1 0 0 1 0 1 6 0 0 0 0 0 0
15381 n9672 Klein, Gérard (I) 10 Comedy 0 0 0 0 1 0 2 0 0 0 0 0 0 5 0 0 0 0 1 1 0
15506 n4974 Montgomery, Judith 10 Thriller 0 0 0 0 0 0 2 0 0 0 0 2 0 3 1 0 0 1 0 0 1
15513 n10157 Ray, Connie 10 Drama 0 0 1 0 0 1 3 0 0 0 0 1 0 0 3 0 0 0 0 0 1
15541 n17196 Bocher, Christian 10 Drama 2 0 0 1 0 0 0 0 0 0 1 0 0 1 2 0 0 3 0 0 0
15560 n5713 Kelly, Lisa Robin 10 Comedy 0 0 0 0 0 0 5 0 1 1 0 1 0 1 1 0 0 0 0 0 0
15582 n17797 Bettinger, Manfred 11 Comedy 0 0 0 0 0 0 4 0 0 0 0 0 0 7 0 0 0 0 0 0 0
15658 n248 Teyssier, Agathe 14 Drama 0 0 0 0 0 0 2 0 0 0 0 0 0 6 3 0 0 3 0 0 0
15724 n6999 Walter, Lisa Ann 11 Comedy 0 0 0 1 0 0 6 0 0 0 0 0 0 0 3 0 0 1 0 0 0
15732 n17904 Kuusniemi, Matti 10 Horror 0 0 0 0 0 0 2 0 0 3 0 0 0 1 1 0 0 2 0 0 1
15736 n7453 Malik, Art 18 Drama 1 0 0 0 0 1 2 0 0 0 0 3 0 1 7 0 0 0 3 0 0
15781 n8763 Steen, Jessica 12 Thriller 0 0 0 1 0 0 2 0 0 0 0 3 0 2 0 0 0 3 1 0 0
15804 n16495 Mangum, Meagan 11 Drama 0 1 0 0 0 0 0 0 0 1 0 1 0 0 2 0 0 5 0 0 1
15868 n13638 Knaack, Pamela 13 Drama 0 0 0 0 0 0 2 0 2 0 0 2 0 3 4 0 0 0 0 0 0
15893 n14022 Benesch, Gabriela 10 Comedy 0 0 1 1 0 0 2 0 0 0 0 0 0 3 2 0 0 0 0 0 1
15932 n11288 Bohne, Bruce 12 Drama 0 0 0 0 0 1 3 0 0 0 0 1 0 1 5 0 0 1 0 0 0
15950 n16718 Gray, Erin 16 Drama 1 0 0 0 0 1 0 0 0 0 0 2 0 6 4 0 0 0 2 0 0
16025 n13334 Slater, Kelly 10 Action 0 0 0 1 1 0 0 0 1 0 0 0 0 2 0 0 0 0 5 0 0
16031 n17884 Moskona, Aryeh 10 Drama 0 0 0 0 0 2 1 0 0 0 0 0 0 1 5 0 0 1 0 0 0
16050 n17737 Zhou, Xun 10 Drama 1 0 0 0 0 3 1 0 0 0 0 0 0 1 4 0 0 0 0 0 0
16062 n15773 Timbrook, Corby 11 Thriller 0 0 0 0 0 1 1 0 1 1 0 4 0 1 2 0 0 0 0 0 0
16089 n8081 Winters, Time 18 Thriller 0 0 1 0 0 0 1 1 0 2 0 3 0 2 2 0 1 3 0 0 2
16120 n496 McIntyre, Marilyn 11 Drama 0 0 0 0 0 3 0 0 0 0 0 3 0 1 4 0 0 0 0 0 0
16140 n11312 Robinson, Bumper 15 Comedy 0 0 0 0 0 0 4 0 0 0 2 1 0 2 4 0 0 0 0 0 2
16160 n15571 Von Teese, Dita 11 Romance 0 1 0 0 0 2 0 0 0 0 0 0 0 4 1 0 0 3 0 0 0
16170 n10648 Fields, Edith (I) 10 Drama 0 0 0 0 0 0 3 0 0 0 0 1 0 1 4 0 0 1 0 0 0
16221 n13628 Sellien, Rainer 13 Drama 0 0 0 0 0 1 0 0 3 0 0 2 0 2 5 0 0 0 0 0 0
16265 n17907 Harry, &apos;Horny&apos; 17 Adult 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
16304 n13859 Bamman, Gerry 10 Drama 1 0 0 0 0 0 1 0 0 0 0 1 0 1 4 0 0 2 0 0 0
16325 n7449 Akinnuoye-Agbaje, Adewale 12 Drama 1 0 0 0 0 0 1 0 0 1 0 2 1 2 2 0 0 0 1 1 0
16394 n13128 Valentín, Juan 12 Action 0 0 0 8 0 0 1 0 0 0 0 0 0 2 1 0 0 0 0 0 0
16418 n16116 Saeki, Hinako 13 Horror 0 0 0 0 0 2 0 0 0 4 0 2 0 1 3 0 0 0 1 0 0
16424 n14088 Shepherd, Suzanne 10 Drama 0 0 0 0 0 1 2 0 2 0 0 0 0 0 3 0 0 2 0 0 0
16535 n10822 Treviño, Marco Antonio 10 Romance 1 0 0 1 1 2 0 0 1 0 0 0 0 3 0 0 0 1 0 0 0
16567 n15812 Carol, Jean (I) 12 Drama 1 0 0 0 0 1 0 0 0 1 0 0 0 4 4 0 0 1 0 0 0
16731 n1250 Wong, Benedict 12 Drama 0 1 0 0 0 0 1 0 1 0 0 3 0 2 4 0 0 0 0 0 0
16823 n16583 Coppola, Alicia 10 Drama 0 0 0 0 0 0 0 0 0 0 0 1 0 2 5 0 0 0 0 0 2
16870 n12865 Delfino, Majandra 11 Comedy 1 0 0 0 1 1 3 0 0 1 0 1 0 1 2 0 0 0 0 0 0
17008 n14459 Vincent, Jan-Michael 12 Drama 0 0 0 0 1 1 0 0 0 1 0 1 0 4 2 0 0 1 0 0 1
17045 n3138 Phillips, Wendy (I) 10 Drama 1 0 0 0 1 0 0 0 0 0 0 0 0 2 4 0 0 2 0 0 0
17063 n5739 Walker, Ally 11 Comedy 1 0 1 0 0 1 3 0 0 0 0 1 0 1 2 0 0 0 1 0 0
17081 n15495 Ng, Carrie 12 Drama 0 0 0 1 0 1 0 0 1 0 0 0 0 5 4 0 0 0 0 0 0
17142 n17298 Reema 16 Romance 0 0 0 0 0 1 0 0 0 0 0 1 0 13 1 0 0 0 0 0 0
17145 n14111 LeBlanc, Sadie 10 Romance 0 0 0 0 1 2 0 1 1 0 0 1 0 1 2 0 0 1 0 0 0
17181 n8868 Avedikian, Serge 15 Drama 1 0 0 0 0 1 2 0 0 0 0 1 0 7 3 0 0 0 0 0 0
17202 n8037 Prodan, Andrea 11 Drama 0 0 0 0 0 0 0 0 0 0 0 1 0 4 6 0 0 0 0 0 0
17245 n7311 Lemke, Anthony 12 Romance 0 0 1 0 0 2 1 0 0 1 0 2 0 1 1 0 0 2 0 0 1
17262 n16226 Madison, Elina 10 Horror 2 0 0 0 0 0 0 0 0 4 0 2 0 0 0 0 0 1 0 0 1
17282 n16272 Cao, Jorge 10 Drama 1 0 0 0 0 1 0 0 0 0 0 0 0 5 3 0 0 0 0 0 0
17304 n7093 Landes, Michael 10 Fantasy 0 0 2 1 0 0 2 0 0 1 0 0 0 2 1 0 0 0 0 1 0
17308 n17740 Yoshiyuki, Yumi 12 Horror 1 0 0 0 0 0 1 0 0 5 0 0 0 2 1 0 0 1 0 0 1
17333 n14457 Janniche, Lisbeth 10 NaN 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 2 0 0
17366 n10268 Roth, Andrea 17 Thriller 0 0 0 0 0 1 1 0 1 0 0 6 0 1 5 0 0 0 0 0 2
17432 n13307 Doyle, John (I) 11 Comedy 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 2 0 0
17440 n16798 Quartaroli, Peter 10 Romance 0 0 0 0 0 3 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0
17467 n13581 Hassan, Jalaluddin 14 Romance 0 0 0 0 0 6 1 0 0 0 0 0 0 1 5 0 0 0 0 0 1
17476 n8501 Rogers, AnnieScott 13 Romance 0 0 0 0 0 1 1 0 0 0 0 1 0 5 1 0 0 4 0 0 0
17567 n3616 Downing, Sara (I) 11 Horror 0 0 1 0 0 2 1 0 0 3 0 3 0 1 0 0 0 0 0 0 0

6) Network Diameter and Average Path Length

You have functions in igraph to calculate the diameter and the average path length. Think if you should consider the weights, the directions, etc.

6.1) What is the diameter of the graph?

The diameter of a graph is defined as the maximum distance between any pair of nodes in the graph. It is the longest shortest path between any two nodes in the graph.

It provides insight into the overall connectivity of a graph. A small diameter indicates that the graph is well-connected, with short paths between most pairs of nodes. A large diameter, on the other hand, suggests that the graph may be more fragmented or sparsely connected, with longer distances between many pairs of nodes.

The diameter can also be used to estimate the efficiency of certain algorithms, such as those that rely on shortest path calculations. In general, smaller diameters are preferred for these types of algorithms as they can improve their overall performance.

In [ ]:
# Calculate the unweighted diameter of each subgraph
for i, sg in enumerate(subgraphs):
    diameter = sg.diameter(directed=False)
    print(f"Subgraph {i+1} diameter: {diameter}")
Subgraph 1 diameter: 16
Subgraph 2 diameter: 8
Subgraph 3 diameter: 6
Subgraph 4 diameter: 1
Subgraph 5 diameter: 8
Subgraph 6 diameter: 1
Subgraph 7 diameter: 2
Subgraph 8 diameter: 4
Subgraph 9 diameter: 1
Subgraph 10 diameter: 1
Subgraph 11 diameter: 1
Subgraph 12 diameter: 1
Subgraph 13 diameter: 1
Subgraph 14 diameter: 1
Subgraph 15 diameter: 2
Subgraph 16 diameter: 1
Subgraph 17 diameter: 1
Subgraph 18 diameter: 1
Subgraph 19 diameter: 1

From the results we can see that the diameter of each subgraph is relatively small, with most subgraphs having a diameter of 1. This suggests that the actors in each subgraph are relatively well-connected, with no major gaps in the network. Subgraphs 1, 5, and 8 have larger diameters, indicating that some actors in those subgraphs may be more distant from others, but overall the diameters are quite small.

It's important to keep in mind that this analysis only looks at the unweighted graph, so it doesn't take into account the strengths of connections between actors. Especially, the subgraphs with many nodes have higher diameters, since subgraph 1 has the highest number of nodes of 17455 and number of edges: 286911 it looks like that these are realtively well connected actors.

In [ ]:
# Calculate the inverted weighted diameter of each subgraph
for i, sg in enumerate(subgraphs_inv):
    diameter = sg.diameter(directed=False, weights='weight')
    print(f"Subgraph {i+1} weighted diameter: {diameter}")
Subgraph 1 weighted diameter: 6.373464912280701
Subgraph 2 weighted diameter: 3.75
Subgraph 3 weighted diameter: 3.0
Subgraph 4 weighted diameter: 0.11111111111111116
Subgraph 5 weighted diameter: 3.833333333333333
Subgraph 6 weighted diameter: 0.5
Subgraph 7 weighted diameter: 0.6666666666666665
Subgraph 8 weighted diameter: 1.025
Subgraph 9 weighted diameter: 0.09090909090909083
Subgraph 10 weighted diameter: 0.16666666666666674
Subgraph 11 weighted diameter: 0.5
Subgraph 12 weighted diameter: 0.19999999999999996
Subgraph 13 weighted diameter: 0.25
Subgraph 14 weighted diameter: 0.10000000000000009
Subgraph 15 weighted diameter: 0.6111111111111112
Subgraph 16 weighted diameter: 0.5
Subgraph 17 weighted diameter: 0.5
Subgraph 18 weighted diameter: 0.5
Subgraph 19 weighted diameter: 0.10000000000000009

These results give us an idea of the "spread" of each subgraph, taking into account the weights of the edges. For example, subgraphs 1 with a larger diameter may be more spread out and have longer paths between nodes, while subgraphs with a smaller diameter 4,10,14,19 may be more tightly connected.This measure is useful to understand how well-connected a network is and how efficiently information or resources can flow through it. A smaller diameter indicates a more connected network, whereas a larger diameter suggests that it may take longer for information to propagate across the network.

Now, let's look at the weighted graph for Subgraph 1. We see that the weighted diameter of Subgraph 1 is 6.373464912280701. This means that the longest shortest path between any two nodes in Subgraph 1, taking into account the weights of the edges, has a length of 6.373464912280701.This indicates that there are some nodes within that subgraph that are relatively far apart from each other in terms of their weighted distances

The difference between the unweighted and weighted diameters highlights the importance of considering edge weights when analyzing graphs. In the unweighted graph, we only know which nodes are connected, but we don't have any information about the strength or importance of those connections. However, in the weighted graph, we can see that some edges are stronger than others, which can have a significant impact on the overall structure and behavior of the graph.

6.2) What is the avg path length of the graph?

In [ ]:
for i, sg in enumerate(subgraphs):
  avg_path_length = sg.average_path_length(directed=False)
  print(f"Subgraph {i+1} avg shortest path length without weight: {avg_path_length:.2f}") 
Subgraph 1 avg shortest path length without weight: 4.89
Subgraph 2 avg shortest path length without weight: 3.33
Subgraph 3 avg shortest path length without weight: 3.23
Subgraph 4 avg shortest path length without weight: 1.00
Subgraph 5 avg shortest path length without weight: 3.30
Subgraph 6 avg shortest path length without weight: 1.00
Subgraph 7 avg shortest path length without weight: 1.33
Subgraph 8 avg shortest path length without weight: 1.91
Subgraph 9 avg shortest path length without weight: 1.00
Subgraph 10 avg shortest path length without weight: 1.00
Subgraph 11 avg shortest path length without weight: 1.00
Subgraph 12 avg shortest path length without weight: 1.00
Subgraph 13 avg shortest path length without weight: 1.00
Subgraph 14 avg shortest path length without weight: 1.00
Subgraph 15 avg shortest path length without weight: 1.33
Subgraph 16 avg shortest path length without weight: 1.00
Subgraph 17 avg shortest path length without weight: 1.00
Subgraph 18 avg shortest path length without weight: 1.00
Subgraph 19 avg shortest path length without weight: 1.00

The shortest path length = is the minimum number of edges that need to be traversed to get from one node to another node in the graph.


The average shortest path length with weight for each subgraph can be used to draw conclusions about the connectivity and structure of the subgraphs:

  • Subgraph 1 has an average shortest path length of 4.89, which indicates that not all nodes in this subgraph are not well connected.This means that there exists a pair of nodes in this connected component where the shortest path between them requires traversing ca. 4.89 edges
  • Subgraph 2 has an average shortest path length of 3.33, which is shorter than that of subgraph 1, indicating that the nodes in this subgraph are more connected.
  • Subgraph 4, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, and 19 all have an average shortest path length of 1, which indicates that they are all fully connected subgraphs or cliques, where each node is connected to every other node.
  • Subgraph 3 and 5 have an average shortest path length between 3 and 4, indicating that they are moderately well-connected subgraphs.
  • Subgraph 7 and 15 have an average shortest path length between 1 and 2, indicating that they are well-connected subgraphs with a few nodes that might be less connected.
  • Subgraph 8 has an average shortest path length between 1 and 2, indicating that it is a well-connected subgraph, but with a few nodes that might be less connected compared to subgraphs 4, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, and 19.

The results suggest that the average shortest path length varies widely among the connected components, ranging from 1.0 to 4.89, which indicates that the network may be relatively disconnected in some areas and more connected in others.

Overall, analyzing the average shortest path length with weight for each subgraph can help us understand the structure and connectivity of the graph at a more granular level.

Avg Path Length with inverse matrix

In [ ]:
# Using the inverse weights to analyse the average path length
for i, sg in enumerate(subgraphs_inv):
  avg_path_length = sg.average_path_length(directed=False,weights='weight')
  print(f"Subgraph {i+1} avg shortest path length with weight: {avg_path_length:.2f}")  
Subgraph 1 avg shortest path length with weight: 1.77
Subgraph 2 avg shortest path length with weight: 1.58
Subgraph 3 avg shortest path length with weight: 1.53
Subgraph 4 avg shortest path length with weight: 0.08
Subgraph 5 avg shortest path length with weight: 1.57
Subgraph 6 avg shortest path length with weight: 0.50
Subgraph 7 avg shortest path length with weight: 0.44
Subgraph 8 avg shortest path length with weight: 0.54
Subgraph 9 avg shortest path length with weight: 0.09
Subgraph 10 avg shortest path length with weight: 0.15
Subgraph 11 avg shortest path length with weight: 0.50
Subgraph 12 avg shortest path length with weight: 0.20
Subgraph 13 avg shortest path length with weight: 0.25
Subgraph 14 avg shortest path length with weight: 0.10
Subgraph 15 avg shortest path length with weight: 0.41
Subgraph 16 avg shortest path length with weight: 0.50
Subgraph 17 avg shortest path length with weight: 0.50
Subgraph 18 avg shortest path length with weight: 0.50
Subgraph 19 avg shortest path length with weight: 0.10

The weighted average shortest path length takes into account the weight of the edges in the graph, while the unweighted average shortest path length does not.

We can see that for most subgraphs, the weighted average shortest path length is much smaller than the unweighted average shortest path length. This is because in many cases, the shortest path between two nodes in a subgraph may not be the one with the fewest number of edges, but rather the one with the lowest weight.

For example, in Subgraph 4, the unweighted average shortest path length is 1.00, which means that the average number of edges between any two nodes in the subgraph is one. However, the weighted average shortest path length is only 0.08, which means that on average, the actual distance between any two nodes in the subgraph is much smaller, taking into account the weights of the edges.

The unweighted average shortest path length in subgraph 1 is 4.89, which means that on average, it takes 4.89 hops to get from one node to another in the subgraph if we don't consider the weight of the edges.However, the weighted average shortest path length in subgraph 1 is 1.77, which means that on average, it takes 1.77 units of weight to get from one node to another in the subgraph. This could suggest that subgraph 1 has a high degree of connectivity, with many nodes closely connected to one another, but with relatively small weights on the edges between them. It could also suggest that the subgraph has a well-defined center or hub, with many nodes connected to that central node, and relatively few long-distance connections between nodes on the periphery of the subgraph.

7) Node importance: Centrality measures

(Optional but recommended): Obtain the distribution of the number of movies made by an actor and the number of genres in which an actor starred in. It may be useful to analyze and discuss the results to be obtained in the following exercises.

7.1.Distribution number of movies

In [61]:
# Get the value counts of movies_95_04 column
counts = nodes['movies_95_04'].value_counts()

# Create a new DataFrame with counts as a column
counts_df = pd.DataFrame({'Number of Actors': counts})

# Sort the DataFrame by the index (which is the number of movies)
counts_df = counts_df.sort_index()
pd.set_option('display.max_columns', None)

# Print the counts in a tabular format
print(counts_df)

# Create a line graph of the value counts using Plotly
fig = go.Figure(data=go.Scatter(x=counts_df.index, y=counts_df['Number of Actors'], mode='lines', line=dict(color='purple')))
#fig.update_layout(title='Distribution of Number of Movies Made by Actors (1995-2004)', xaxis_title='Number of Movies', yaxis_title='Number of Actors')
#pio.show(fig)
     Number of Actors
10               2302
11               1853
12               1570
13               1322
14               1149
..                ...
429                 1
435                 1
460                 1
467                 1
540                 1

[194 rows x 1 columns]

image.png

It is evident from both the graph and the table that the majority of actors were cast in 10 movies, with a sharp decline in the number of movies as the number of castings increases beyond that.

In [66]:
# Counting the number of genres the actors participated in 
nodes['no_of_genres'] = nodes['genres'].str.count(',') + 1

7.2. Number of Genres of the actors

The result below shows the number of actors in the dataset grouped by the number of genres they appeared in. For example, there are 3107 actors who appeared in 6 genres, 2691 actors who appeared in 7 genres, and so on. The result is sorted in ascending order based on the count of actors in the respective genre, so it shows that there are more actors who appeared in a smaller number of genres, with a gradual decrease as the number of genres increases.

In [67]:
genre_counts = nodes[['no_of_genres']].value_counts().sort_values(ascending=False)
print(genre_counts)
no_of_genres
6               3107
7               2691
5               2564
8               2056
4               1657
9               1401
3                970
2                916
10               831
11               518
12               342
13               222
14               114
1                 94
15                48
16                33
17                 9
18                 3
19                 1
dtype: int64
In [69]:
import plotly.express as px

# Compute the genre counts
genre_counts = nodes['no_of_genres'].value_counts().sort_index()

# Create a dataframe for the counts
df = pd.DataFrame({'no_of_genres': genre_counts.index, 'count': genre_counts.values})

# Create the line plot
fig = px.line(df, x='no_of_genres', y='count', title='Genre Counts')
#fig.update_layout(xaxis_title='Number of Genres', yaxis_title='Count')

# Show the plot
#fig.show()

image.png

Based on the output of the code, we can see that the majority of actors in the dataset have between 5 and 8 genres, with the most common number of genres being 6 (with 3107 actors having 6 genres). This suggests that most actors have a relatively diverse set of genres they have worked in.

On the other end of the spectrum, there are only a few actors with 17, 18, or 19 genres, suggesting that it is relatively rare for an actor to have worked in such a diverse range of genres.

In [52]:
# convert 'movies_95_04' column to integer data type
df_with_genres['movies_95_04'] = df_with_genres['movies_95_04'].astype(int)

# get distribution of number of movies by actor
movies_by_actor = df_with_genres.groupby('ActorName')['movies_95_04'].sum()

# get distribution of number of genres by actor
# convert 'main_genre' column to string data type
df_with_genres['main_genre'] = df_with_genres['main_genre'].astype(str)
genres_by_actor = df_with_genres.groupby('ActorName')['main_genre'].nunique()
In [71]:
import plotly.express as px

genre_counts = df_with_genres['main_genre'].value_counts().sort_values(ascending=False)
sorted_genres = genre_counts.index.tolist()

sorted_df = df_with_genres.sort_values(by=['main_genre'], key=lambda x: x.map(sorted_genres.index))

fig = px.histogram(sorted_df, x='main_genre', nbins=len(df_with_genres['main_genre'].unique()), color='main_genre',
                   color_discrete_sequence=px.colors.qualitative.Pastel1)
#fig.update_layout(title='Distribution of Actors in Main Genre',xaxis_title='Main Genre',yaxis_title='Number of Actors')
#fig.show()

image.png

Use the columns of the genres to Create a distribution of the different genres.

In [54]:
cols_to_convert = df_with_genres.columns.drop(['id', 'ActorName','main_genre'])
df_with_genres[cols_to_convert] = df_with_genres[cols_to_convert].apply(pd.to_numeric, errors='coerce')
In [72]:
# create subplots
fig = sp.make_subplots(rows=9, cols=4, subplot_titles=df_with_genres.columns[3:])

# loop over columns and add histogram
for i, col in enumerate(df_with_genres.columns[3:]):
    row_num = (i // 4) + 1
    col_num = (i % 4) + 1
    fig.add_trace(go.Histogram(x=df_with_genres[col], name=col), row=row_num, col=col_num)

# update layout
#fig.update_layout(height=2000, width=1000, title='Distribution of Genres in Movies')

# show plot
#fig.show()

image.png

In [73]:
import plotly.graph_objects as go

# create a new dataframe with only the columns of interest
df_genres_count = df_with_genres.iloc[:, 4:25].sum()

# sort genres by count
df_genres_count = df_genres_count.sort_values(ascending=False)

# set custom color palette
colors = ['#00adb5', '#393e46', '#222831', '#eeeeee', '#ffd369', '#f8b500', '#f6416c', '#ff7b25', '#1a1a2e', '#3282b8','#CE99DE','#9f15f3','#390825','#352331','#bc366e','#314b7e','#823814','#4a4788','#2b303b','#3a9b9e']

# create a bar chart for the counts of each genre
fig = go.Figure(go.Bar(x=df_genres_count.index, y=df_genres_count.values, marker_color=colors))
#fig.update_layout(title='Number of Movies per Genre Count from all actors', xaxis_title='Genre', yaxis_title='Count')
#fig.show()

image.png

NULL: It's possible that this category represents movies that do not have a specific genre or that the genre information is missing or incomplete. It's also possible that this category includes movies from various genres that are not categorized correctly.

Drama:This is a broad category that can include many different types of movies that focus on serious or emotional themes. Drama movies often have strong character development and can appeal to a wide audience. It's possible that the high number of drama movies reflects the popularity of this genre among filmmakers and audiences.

Adult: This category likely includes movies that are intended for mature audiences and may contain explicit content. It's possible that these movies are very short movies and have more movies available.

Comedy: This is a popular genre. Comedy movies can appeal to a wide audience and may be more likely to generate high box office revenues than other genres. It's possible that the high number of comedy movies reflects the popularity of this genre among filmmakers and audiences.

It's important to note that the number of movies in a particular genre does not necessarily reflect the quality or popularity of those movies.

8) Degree, betweeness and closeness

Obtain three vectors with the degree, betweeness and closeness for each vertex of the actors' graph.

In [ ]:
df_with_genres.head(3)
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness subgraph_num
0 n15629 Rudder, Michael (I) 12 Thriller 0 0 1 1 0 1 1 0 0 1 0 2 0 2 1 0 0 0 0 1 1 551.325397 0.000057 0.000283 0.658297 [431, 672, 717, 823, 858, 911, 1787, 3674, 391... 36 3929.012117 0.110066 0
1 n5026 Morgan, Debbi 16 Drama 0 0 0 0 0 2 2 0 0 2 0 0 0 3 6 0 0 0 1 0 0 949.411508 0.000056 0.000261 0.667708 [352, 452, 1638, 2110, 2170, 3419, 4879, 5250,... 23 21716.283252 0.122167 0
2 n11252 Bellows, Gil 33 Drama 2 0 1 0 1 6 6 0 0 1 0 4 0 2 7 0 0 2 1 0 0 19206.960317 0.000058 0.000055 0.689974 [3188, 4430, 4452, 4671, 5324, 5379, 5902, 652... 22 13283.000044 0.112943 0

Obtain the list of the 20 actors with the largest degree centrality. It can be useful to show a list with the degree, the name of the actor, the number of movies, the main genre, and the number of genres in which the actor has participated.

8.1) Actor with the highest Degree

Note the following analyzes focus on all nodes and edges and do not differentiate between subgraphs. The same analyis could be done by each subgraph.

8) Who is the actor with highest degree centrality?

In [ ]:
df_with_genres.sort_values(by='degree', ascending=False).head(1)
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness subgraph_num
12147 n162 Davis, Mark (V) 540 Adult 0 429 1 1 0 0 3 0 1 0 0 0 0 92 6 0 0 1 5 0 1 1.703766e+07 0.000427 0.980388 0.835476 [83, 86, 104, 131, 137, 139, 142, 181, 184, 29... 784 184760.341185 0.104901 0

Davis Mark as seen in the below table, is an American actor who is known for his work in adult films. He has been active in the adult film industry since the 1980s and has appeared in a large number of adult films. He has played in 10 different genres, including Adult, which is the main genre he is associated with.

The degree of the David Mark node represents the number of other actors they have worked with. In the co-starring graph of the movies dataset, Davis Mark has the highest degree among all actors in the Adult genre. This means that he has worked with a large number of other actors in this genre, which may suggest that he is a prolific and well-connected actor within the adult film industry.

It's important to note that the degree centrality measure only takes into account the number of connections a node has, without considering the importance or influence of the other nodes it is connected to. Therefore, while Davis Mark has the highest degree in the Adult genre, there may be other actors who have more important or influential connections within the industry.

In [74]:
# Get the neighbors of n162
neighbors = g.neighbors('n162')

# Create a subgraph with n2108 and its neighbors
subgraph_Mark = g.subgraph(['n162'] + neighbors)

# Set the ActorName as the vertex label for node 'n162'
#subgraph_Mark.vs.find('n162')['label'] = nodes.loc[nodes['id'] == 'n162', 'ActorName'].values[0]

# Plot the subgraph without vertex labels
visual_style = {}
visual_style["vertex_size"] = 20
visual_style["bbox"] = (800, 800)
visual_style["margin"] = 100
#visual_style["vertex_label"] = ''
#ig.plot(subgraph_Mark, **visual_style)

image.png

Degree

8.2) How do you explain the high degree of the top-20 list??

In [ ]:
# Get the degree centrality of each actor
degree = g.degree()

# Create a dataframe with the actor ids and their degree centrality
#degree_df = pd.DataFrame({'id': g.vs['name'], 'Degree': degree})

# Merge the degree dataframe with the nodes dataframe to get additional information
merged_df = pd.merge(pd.DataFrame({'id': g.vs['name'], 'Degree': g.degree()}), nodes, on='id')

# Split the genres column into number of genres and add as a new column
merged_df['no_of_genres'] = merged_df['genres'].str.count(',') + 1

# Sort the merged dataframe by degree centrality in descending order and get the top 20 actors
top_actors = merged_df.sort_values('Degree', ascending=False).head(20).reset_index(drop=True)

# Add a ranking column
top_actors['Rank'] = top_actors.index + 1

# Reorder the columns
top_actors = top_actors[['Rank', 'Degree', 'ActorName', 'movies_95_04', 'main_genre', 'no_of_genres']]

# Print the top actors with their degree, name, number of movies, main genre, and number of genres participated in
print(top_actors)
    Rank  Degree            ActorName  movies_95_04 main_genre  no_of_genres
0      1     784      Davis, Mark (V)           540      Adult            10
1      2     610    Sanders, Alex (I)           467      Adult            10
2      3     599     North, Peter (I)           460      Adult             8
3      4     584          Marcus, Mr.           435      Adult             6
4      5     561       Tedeschi, Tony           364      Adult            11
5      6     555           Dough, Jon           300      Adult             8
6      7     545      Stone, Lee (II)           403      Adult             7
7      8     533        Voyeur, Vince           370      Adult            10
8      9     500  Lawrence, Joel (II)           315      Adult             7
9     10     493    Steele, Lexington           429      Adult             8
10    11     490          Ashley, Jay           309      Adult             8
11    12     475            Boy, T.T.           336      Adult             8
12    13     471          Jeremy, Ron           280      Adult            14
13    14     471  Cannon, Chris (III)           287      Adult             9
14    15     463           Bune, Tyce           267      Adult             5
15    16     457           Hanks, Tom            75     Family            13
16    17     451       Michaels, Sean           252      Adult             6
17    18     450          Stone, Kyle           278      Adult             8
18    19     438        Hardman, Dave           319      Adult             7
19    20     428      Surewood, Brian           244      Adult             6

High degree centrality in actors means that they have appeared in a large number of movies or have been involved in a large number of collaborations with other actors. This can indicate their popularity, influence, and potentially their expertise or skill in acting. It may also suggest that they have a wide range of connections within the movie industry, which can be beneficial for their career advancement. However, it's important to note that high degree centrality alone does not necessarily guarantee success or talent, and other factors such as acting ability, personal and professional relationships, and opportunities also play a role in an actor's career.

The actors with the highest degree centrality are mainly from the adult film industry. Degree centrality measures the number of connections (edges) each node (actor) has in a network (movies), so a high degree centrality suggests that these actors have appeared in a large number of movies and/or have worked with a large number of other actors and are normally very short movies, so there are more movies done than in other genres.

In the case of the adult film industry, it is likely that these actors have a high degree centrality because they have appeared in many movies with different partners. In addition, the adult film industry may have a higher turnover rate than other industries, leading to a larger pool of actors and more frequent collaborations between actors.

It is worth noting that degree centrality alone may not be a comprehensive measure of an actor's success or influence in the movie industry, as there are other factors such as critical acclaim, box office success, and industry connections that can also contribute to an actor's overall impact.

8.3Highest Betweeness

Obtain the list of the 20 actors with the largest betweenness centrality. Show a list with the betweenness, the name of the actor, the number of movies, the main genre, and the number of genres in which the actor has participated.

8.3) Who is the actor with highest betweenes?

Betweenness centrality is a measure of the importance of a node (actor) in a network. It is based on the number of shortest paths between pairs of nodes that pass through that node. In other words, a node with high betweenness centrality is one that lies on many of the shortest paths between other nodes in the network.

In [ ]:
df_with_genres.sort_values(by='betweenness', ascending=False).head(1)
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness
10548 n2108 Jeremy, Ron 280 Adult 0 149 0 0 0 3 15 2 0 9 1 3 1 43 15 0 1 4 26 0 8 1.487206e+07 0.000465 0.752032 0.836407 [83, 104, 131, 183, 199, 216, 301, 345, 365, 4... 471 9.748544e+06 0.28272

Ron Jeremy is a former adult film actor and director who has been active in the industry for over three decades. He has appeared in over 2,000 adult films and is known as one of the most recognizable figures in the industry. The fact that he has worked with 471 other actors and has the highest betweenness centrality suggests that he has played a significant role in connecting different parts of the network. In other words, he is a central figure who has helped to bridge different groups of actors, which has led to him having a high level of influence in the network. This actor seems to be well-connected with other actors in the network, and is frequently on the shortest path between other pairs of actors. This could be due to his longevity in the industry and his ability to form connections with a wide variety of other actors. It is also possible that his high betweenness centrality is due to factors such as his reputation, level of fame, and ability to bring together people from different parts of the industry. Overall, the high betweenness centrality of Ron Jeremy suggests that he has had a significant impact on the adult film industry and has played a key role in connecting different parts of the network, which can be seen in the graph below.

In [75]:
# Get the neighbors of n2108
neighbors = g.neighbors('n2108')

# Create a subgraph with n2108 and its neighbors
subgraph_Ron = g.subgraph(['n2108'] + neighbors)

# Set the ActorName as the vertex label for node 'n2108'
subgraph_Ron.vs.find('n2108')['label'] = nodes.loc[nodes['id'] == 'n2108', 'ActorName'].values[0]

# Plot the subgraph with only the label for node 'n2108'
visual_style = {}
visual_style["vertex_size"] = 20
visual_style["bbox"] = (800, 800)
visual_style["margin"] = 100
visual_style["vertex_label"] = [v['ActorName'] if v.index == subgraph_Ron.vs.find('n2108').index else '' for v in subgraph_Ron.vs]
#ig.plot(subgraph_Ron, **visual_style)

image.png

In [ ]:
# Get the neighbors of n2108
neighbors = g.neighbors('n2108')

# Count the number of neighbors
num_neighbors = len(neighbors)

# Print the result
print(f"The number of neighbors of n2108 is {num_neighbors}")
The number of neighbors of n2108 is 471

8.4) How do you explain the high betweenness of the top-20 list?

In [ ]:
#weights adding 
# Get the betweenness centrality of each actor
betweenness = g.betweenness(directed=False)

# Create a dataframe with the actor ids and their betweenness centrality
betweenness_df = pd.DataFrame({'id': g.vs['name'], 'Betweenness': betweenness})

# Merge the betweenness dataframe with the nodes dataframe to get additional information
merged_df = pd.merge(betweenness_df, nodes, on='id')

# Split the genres column into number of genres and add as a new column
merged_df['no_of_genres'] = merged_df['genres'].str.count(',') + 1

# Sort the merged dataframe by betweenness centrality in descending order and get the top 20 actors
top_actors = merged_df.sort_values('Betweenness', ascending=False).head(20).reset_index(drop=True)

# Add a ranking column
top_actors['Rank'] = top_actors.index + 1

# Reorder the columns
top_actors = top_actors[['Rank', 'Betweenness', 'ActorName', 'movies_95_04', 'main_genre', 'no_of_genres']]

# Print the top actors with their betweenness, name, number of movies, main genre, and number of genres participated in
print(top_actors)
    Rank   Betweenness             ActorName  movies_95_04 main_genre  \
0      1  9.748544e+06           Jeremy, Ron           280      Adult   
1      2  4.716909e+06      Chan, Jackie (I)            59     Comedy   
2      3  4.330663e+06        Cruz, Penélope            46      Drama   
3      4  4.295503e+06      Shahlavi, Darren            16     Action   
4      5  4.267099e+06  Del Rosario, Monsour            20     Action   
5      6  4.037356e+06     Depardieu, Gérard            56     Comedy   
6      7  2.570247e+06     Bachchan, Amitabh            35    Romance   
7      8  2.539614e+06    Jackson, Samuel L.            97      Drama   
8      9  2.368164e+06     Soualem, Zinedine            65     Comedy   
9     10  2.316388e+06       Del Rio, Olivia            84      Adult   
10    11  2.136980e+06      Jaenicke, Hannes            66   Thriller   
11    12  2.117390e+06          Hayek, Salma            44      Drama   
12    13  2.098485e+06                  Pelé            10    Romance   
13    14  2.062585e+06        Knaup, Herbert            50      Drama   
14    15  2.051621e+06      Goldberg, Whoopi           109     Comedy   
15    16  2.019247e+06         Roth, Cecilia            23      Drama   
16    17  2.006221e+06      Bellucci, Monica            43      Drama   
17    18  1.977252e+06            Hanks, Tom            75     Family   
18    19  1.937362e+06      August, Pernilla            31      Drama   
19    20  1.919261e+06             Kier, Udo            69      Drama   

    no_of_genres  
0             14  
1             12  
2             13  
3              9  
4              9  
5             11  
6             13  
7             14  
8             12  
9              6  
10            12  
11            14  
12             4  
13            11  
14            14  
15             8  
16            12  
17            13  
18            10  
19            15  

The high betweenness of the top-20 list suggests that these actors are likely to play important roles in connecting different parts of the movie industry network. Actors with high betweenness centrality act as bridges between different groups of actors and movies, and they play a crucial role in the flow of information, resources, and opportunities across the network. As examples, Chackie Chan and Penelope Cruz have also worked with a diverse range of actors and have appeared in many films, leading to their high betweenness centrality scores. On the other hand, Darren Shahlavi was a British actor who primarily worked in action movies. He participated in only 16 movies between 1995 and 2004, but he has a high betweenness centrality because he acted as a bridge between different clusters in the movie network. Many of the movies he acted in were martial arts or action movies, and he worked with many different actors and directors in this genre.

In other words, these actors have the potential to control the flow of information and resources, as they are positioned in the network to serve as intermediaries between otherwise disconnected groups. This makes them valuable assets in the industry, as they can facilitate collaboration, innovation, and success. It is also possible that some of the actors on the list have achieved high betweenness centrality due to their involvement in particular genres or types of movies that are well-connected within the network, making them important figures in those areas.

We also see actors from a variety of genres including Adult, Comedy, Drama, and Thriller, indicating that high betweenness centrality is not limited to actors in any one particular genre and shows the importance of these actors in a field.

Inverted Degree

Inverting the weights for betweenness centrality allows nodes with lower weighted shortest paths to be ranked higher, which can be important in networks where shorter distances are more desirable. It can also lead to a more equitable distribution of centrality scores among nodes.

In [ ]:
df_with_genres.sort_values(by='betweenness_weigth', ascending=False).head(1)
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness
12147 n162 Davis, Mark (V) 540 Adult 0 429 1 1 0 0 3 0 1 0 0 0 0 92 6 0 0 1 5 0 1 1.703766e+07 0.000427 0.980388 0.835476 [83, 86, 104, 131, 137, 139, 142, 181, 184, 29... 784 931853.137495 0.2493
In [ ]:
# Get the betweenness centrality of each actor
betweenness = g_inv.betweenness(weights='weight', directed=False)

# Create a dataframe with the actor ids and their betweenness centrality
betweenness_weight = pd.DataFrame({'id': g_inv.vs['name'], 'Betweenness_w': betweenness})

# Merge the betweenness dataframe with the nodes dataframe to get additional information
merged_df = pd.merge(betweenness_weight, nodes, on='id')

# Split the genres column into number of genres and add as a new column
merged_df['no_of_genres'] = merged_df['genres'].str.count(',') + 1

# Sort the merged dataframe by betweenness centrality in descending order and get the top 20 actors
top_actors = merged_df.sort_values('Betweenness_w', ascending=False).head(20).reset_index(drop=True)

# Add a ranking column
top_actors['Rank'] = top_actors.index + 1

# Reorder the columns
top_actors = top_actors[['Rank', 'Betweenness_w', 'ActorName', 'movies_95_04', 'main_genre', 'no_of_genres']]

# Print the top actors with their betweenness, name, number of movies, main genre, and number of genres participated in
print(top_actors)
    Rank  Betweenness_w                  ActorName  movies_95_04 main_genre  \
0      1   1.703766e+07            Davis, Mark (V)           540      Adult   
1      2   1.487206e+07                Jeremy, Ron           280      Adult   
2      3   9.651273e+06              Holmes, Steve           288      Adult   
3      4   9.200956e+06             Cruz, Penélope            46      Drama   
4      5   8.789476e+06          Perry, David (VI)           262      Adult   
5      6   7.823371e+06           Blum, Steven (I)           121     Sci-Fi   
6      7   7.444954e+06                Cruise, Tom            46      Music   
7      8   6.827682e+06           Goldberg, Whoopi           109     Comedy   
8      9   6.052977e+06          Depardieu, Gérard            56     Comedy   
9     10   6.015747e+06              Norris, Daran            79     Sci-Fi   
10    11   5.973748e+06              Welker, Frank           159     Family   
11    12   5.217806e+06           Chan, Jackie (I)            59     Comedy   
12    13   5.163213e+06              DeLisle, Grey            86     Sci-Fi   
13    14   5.149972e+06                      Ice-T            63      Drama   
14    15   4.797456e+06         Jackson, Samuel L.            97      Drama   
15    16   4.673281e+06               Cleese, John            69     Comedy   
16    17   4.584522e+06     Schwarzenegger, Arnold            70     Family   
17    18   4.374866e+06  Richardson, Kevin Michael           120     Sci-Fi   
18    19   4.354148e+06        Lopez, Jennifer (I)            68      Music   
19    20   4.285954e+06           Shahlavi, Darren            16     Action   

    no_of_genres  
0             10  
1             14  
2              5  
3             13  
4              7  
5             14  
6             11  
7             14  
8             11  
9             15  
10            16  
11            12  
12            13  
13            15  
14            14  
15            16  
16            13  
17            17  
18            11  
19             9  

The result of the weighted betweenness analysis suggests that the actors with the highest betweenness centrality are different from the ones with the highest unweighted betweenness. In particular, the weighted analysis takes into account not only the number of shortest paths that pass through an actor but also the weights of the edges. In this case, the weights represent the number of movies that the actors have participated in.

Interestingly, the actor with the highest weighted betweenness is Mark Davis, who has participated in 540 movies in the adult genre and also has the highest degree centrality. This indicates that he is a central actor in the network of actors in the adult movie industry.

Other actors with high weighted betweenness are also from the adult movie industry, such as Ron Jeremy, Steve Holmes, and David Perry. This suggests that these actors have worked with many other actors in the industry, possibly due to the nature of the adult movie genre where actors may have to work with different partners in different movies.

However, there are also actors from other genres with high weighted betweenness, such as Penélope Cruz, Whoopi Goldberg, Gérard Depardieu, and Samuel L. Jackson. This suggests that these actors have participated in many movies and worked with many other actors, making them important bridges between different parts of the network.

Overall, the result of the weighted betweenness analysis provides a more nuanced understanding of the centrality of actors in the network, taking into account the weights of the edges and revealing the importance of actors in the adult movie industry as well as bridges between different actors/genres.

Closeness

Obtain the list of the 20 actors with the largest closeness centrality. Show a list with the closeness the name of the actor, the number of movies, the main genre, and the number of genres in which the actor has participated.

8.5 Who is the actor with highest closeness centrality?

In [ ]:
df_with_genres.sort_values(by='closeness', ascending=False).head(1)
Out[ ]:
id ActorName movies_95_04 main_genre Mystery Adult Fantasy Action Family Romance Comedy Music Crime Horror Animation Thriller Musical NULL Drama Western Adventure Short Documentary War Sci-Fi betweenness_weigth pagerank_weigth eigenvector_weight closeness_weight neighbors degree betweenness closeness
16050 n17737 Zhou, Xun 10 Drama 1 0 0 0 0 3 1 0 0 0 0 0 0 1 4 0 0 0 0 0 0 0.0 0.000057 0.0 2.0 [12747] 1 0.0 1.0
In [76]:
# Get the neighbors 
neighbors = g.neighbors('n17737')

# Create a subgraph with n17737 and its neighbors
subgraph_Xun = g.subgraph(['n17737'] + neighbors)

# Set the ActorName as the vertex label for node 'n17737'
subgraph_Xun.vs.find('n17737')['label'] = nodes.loc[nodes['id'] == 'n17737', 'ActorName'].values[0]

# Plot the subgraph with only the label for node 'n17737'
visual_style = {}
visual_style["vertex_size"] = 20
visual_style["bbox"] = (300, 300)
visual_style["margin"] = 100
visual_style["vertex_label"] = [v['ActorName'] if v.index == subgraph_Xun.vs.find('n17737').index else '' for v in subgraph_Xun.vs]
#ig.plot(subgraph_Xun, **visual_style)

image.png

Closeness is a measure of how easily a node can access other nodes in a network. In a network where there are multiple nodes with the same closeness, selecting only one of them as the "top" node would not be appropriate, as it would not fully capture the overall network structure. In this case, all the nodes in the top 29 have the same closeness degree, indicating that they are all equally central in the network. Therefore, it would be more appropriate to consider all of them as the top nodes rather than just one.

Furthermore, selecting only one node as the top node in a network can be misleading, as it may not fully represent the overall network structure. It is important to consider all nodes with high closeness in order to obtain a more complete picture of the network.

In [ ]:
# Filter by subgraph_num = 0
filtered_df = df_with_genres[df_with_genres['subgraph_num'] == 0]

# Sort by closeness in descending order
sorted_df = filtered_df.sort_values(by='closeness', ascending=False)

# Print the top row of the sorted dataframe

top_actors = sorted_df[['closeness', 'id','ActorName', 'movies_95_04', 'main_genre', 'neighbors']]

top_actors.head(1)
Out[ ]:
closeness id ActorName movies_95_04 main_genre neighbors
10412 0.309265 n1529 Jackson, Samuel L. 97 Drama [1, 8, 48, 67, 80, 100, 116, 161, 168, 177, 25...

For this measure it could be beneficial to look at Subgraph 1 sinec it represent 99% of all edges and nodes: The result suggests that among all the actors present in subgraph 1, Samuel L. Jackson has the highest closeness centrality, which means he has the shortest path to connect to all other actors in the same subgraph. This indicates that he has worked with many actors within subgraph 1, and therefore, he could be considered as a central and influential actor in this particular subgraph. It is also interesting to note that he has been involved in a large number of movies (97) in the time period between 1995 and 2004, which indicates his prolific acting career during that period.

In [ ]:
# Filter the dataframe by subgraph_num = 0
subgraph_df = df_with_genres[df_with_genres['subgraph_num'] == 0]

# Sort the filtered dataframe by closeness in descending order and get the top actor
top_actor = subgraph_df.sort_values(by='closeness', ascending=False).head(1)

# Print the top actor with their Closeness, name, number of movies, main genre, and number of genres participated in
print("Top actor in subgraph 0:\n", top_actor[['closeness', 'ActorName', 'movies_95_04', 'main_genre', 'no_of_genres']])
In [77]:
# Get the neighbors 
neighbors = g.neighbors('n1529')

# Create a subgraph with n1529 and its neighbors
subgraph_Xun = g.subgraph(['n1529'] + neighbors)

# Set the ActorName as the vertex label for node 'n1529'
subgraph_Xun.vs.find('n1529')['label'] = nodes.loc[nodes['id'] == 'n1529', 'ActorName'].values[0]

# Plot the subgraph with only the label for node 'n1529'
visual_style = {}
visual_style["vertex_size"] = 20
visual_style["bbox"] = (300, 300)
visual_style["margin"] = 100
visual_style["vertex_label"] = [v['ActorName'] if v.index == subgraph_Xun.vs.find('n1529').index else '' for v in subgraph_Xun.vs]
#ig.plot(subgraph_Xun, **visual_style)

image.png

8.6 How do you explain the high closeness of the top-20 list?

If we consider all subgraphs equally.

In [ ]:
# Get the closeness centrality of each actor
closeness = g.closeness(vertices= g.vs,normalized= True, mode= "all")

# Create a dataframe with the actor ids and their closeness centrality
closseness_df = pd.DataFrame({'id': g.vs['name'], 'Closeness': closeness})

# Merge the closeness dataframe with the nodes dataframe to get additional information
merged_df = pd.merge(closseness_df, nodes, on='id')

# Split the genres column into number of genres and add as a new column
merged_df['no_of_genres'] = merged_df['genres'].str.count(',') + 1

# Sort the merged dataframe by closseness centrality in descending order and get the top 20 actors
top_actors = merged_df.sort_values('Closeness', ascending=False).head(29).reset_index(drop=True)

# Add a ranking column
top_actors['Rank'] = top_actors.index + 1

# Reorder the columns
top_actors = top_actors[['Rank', 'Closeness', 'ActorName', 'movies_95_04', 'main_genre', 'no_of_genres']]

# Print the top actors with their Closeness, name, number of movies, main genre, and number of genres participated in
print(top_actors)
    Rank  Closeness          ActorName  movies_95_04 main_genre  no_of_genres
0      1        1.0          Zhou, Xun            10      Drama             5
1      2        1.0   Servais, Manuela            11      Drama             4
2      3        1.0   Shakibai, Khosro            12      Drama             3
3      4        1.0   Kuusniemi, Matti            10     Horror             6
4      5        1.0     Nawrocki, Mike            20     Family             4
5      6        1.0  Holt, David (III)            13     Comedy             6
6      7        1.0    Chamish, Leanna            11     Horror             7
7      8        1.0      Lawson, Denis            13      Drama             8
8      9        1.0      Vischer, Lisa            16     Family             4
9     10        1.0  Walsh, Darren (I)            18     Comedy             4
10    11        1.0         Wood, T.J.            14      Adult             2
11    12        1.0       Wang, Zhiwen            10      Drama             4
12    13        1.0    Doyle, John (I)            11     Comedy             2
13    14        1.0  Sterne, Jeff (II)            20      Adult             2
14    15        1.0      Mizuki, Arisa            11      Drama             4
15    16        1.0         Poole, Jim            10  Animation             4
16    17        1.0          Neo, Jack            11     Comedy             6
17    18        1.0      Vischer, Phil            20     Family             4
18    19        1.0   Pickhaver, Greig            11     Comedy             2
19    20        1.0   Matsushita, Yuki            11      Drama             4
20    21        1.0        Tork, Hanan            13    Romance             4
21    22        1.0     Stover, George            11     Sci-Fi             6
22    23        1.0        Nor, Rosyam            12    Romance             4
23    24        1.0         Zaki, Mona            16    Romance             6
24    25        1.0      Kianian, Reza            11   Thriller             4
25    26        1.0   Lähde, Ville (I)            10     Horror             6
26    27        1.0   Black, Rick (II)            11      Adult             2
27    28        1.0        Fox, Emilia            18      Drama             9
28    29        1.0    De Neck, Didier            11      Drama             6

The actors listed in the DataFrame have a closeness score of 1.0, which means they are the most central nodes in their respective subgraphs. However, it's important to note that most of these subgraphs have only two nodes, which indicates that these actors have acted in movies with only one other actor in the dataset.

It's difficult to draw any conclusions about the actors' backgrounds based solely on this information. However, we can note that there are actors from a variety of genres represented in the list, including drama, horror, comedy, family, romance, sci-fi, and thriller. Some of the actors are relatively unknown, while others, such as Emilia Fox, have had successful acting careers.

It's possible that the isolation of these actors is due to a number of factors, such as the regional or cultural focus of the movies they've acted in, or the fact that they may be more likely to act in independent or art house films with smaller casts. For that reason using the closeness for subgraph 1 is more appropiate to get an actor with many close relationships.

Closeness: Subgraph 1

In [ ]:
# Find the largest connected component
largest_component = g.clusters().giant()

# Get the closeness centrality of each actor in the largest connected component
closeness = largest_component.closeness(vertices=largest_component.vs, normalized=True)

# Create a dataframe with the actor ids and their closeness centrality
closeness_df = pd.DataFrame({'id': largest_component.vs['name'], 'Closeness': closeness})

# Merge the closeness dataframe with the nodes dataframe to get additional information
merged_df = pd.merge(closeness_df, nodes, on='id')

# Split the genres column into number of genres and add as a new column
merged_df['no_of_genres'] = merged_df['genres'].str.count(',') + 1

# Sort the merged dataframe by closeness centrality in descending order and get the top 20 actors
top_actors = merged_df.sort_values('Closeness', ascending=False).head(20).reset_index(drop=True)

# Add a ranking column
top_actors['Rank'] = top_actors.index + 1

# Reorder the columns
top_actors = top_actors[['Rank', 'Closeness', 'ActorName', 'movies_95_04', 'main_genre', 'no_of_genres']]

# Print the top actors with their Closeness, name, number of movies, main genre, and number of genres participated in
print(top_actors)
<ipython-input-56-c31a5f752cce>:2: DeprecationWarning:

Graph.clusters() is deprecated; use Graph.connected_components() instead

    Rank  Closeness               ActorName  movies_95_04 main_genre  \
0      1   0.309265      Jackson, Samuel L.            97      Drama   
1      2   0.307760        Goldberg, Whoopi           109     Comedy   
2      3   0.305905            Berry, Halle            63     Family   
3      4   0.305669           Diaz, Cameron            59      Drama   
4      5   0.305231              Hanks, Tom            75     Family   
5      6   0.304719            Stiller, Ben            66     Comedy   
6      7   0.302611         Myers, Mike (I)            58     Comedy   
7      8   0.302606    Douglas, Michael (I)            41     Family   
8      9   0.301217     Lopez, Jennifer (I)            68      Music   
9     10   0.300708         De Niro, Robert            51     Comedy   
10    11   0.300485       Willis, Bruce (I)            52   Thriller   
11    12   0.300408             Cruise, Tom            46      Music   
12    13   0.299336          Hopper, Dennis           106      Music   
13    14   0.298768          Kidman, Nicole            54     Family   
14    15   0.298553         Smith, Will (I)            57      Music   
15    16   0.298548      Washington, Denzel            49     Family   
16    17   0.298512          Travolta, John            63      Drama   
17    18   0.298359             Madonna (I)            61      Music   
18    19   0.297743  Schwarzenegger, Arnold            70     Family   
19    20   0.297581         Hoffman, Dustin            56   Thriller   

    no_of_genres  
0             14  
1             14  
2             14  
3             13  
4             13  
5             14  
6             10  
7             11  
8             11  
9             13  
10            14  
11            11  
12            16  
13            12  
14            10  
15            10  
16            13  
17            11  
18            13  
19            12  

Subgraph 1 From the result, we can see that the top 5 actors with the highest closeness centrality are Jackson, Samuel L., Goldberg, Whoopi, Berry, Halle, Diaz, Cameron, and Hanks, Tom. This suggests that these actors are important in connecting other actors in the subgraph and are likely to have acted in many movies together with other actors in the subgraph.

For example, Samuel L. Jackson has a closeness of 0.309, which means he is only a few steps away from most other actors in the network. Jackson has appeared in many movies with other actors on this list, such as Bruce Willis, Whoopi Goldberg, and Robert De Niro, who themselves have also worked with many other actors in the network.

Furthermore, we can see that the main genres of the top actors with high closeness centrality are mostly in Drama, Comedy, Family, and Thriller. This indicates that these genres may be popular within the subgraph and that these actors may have played significant roles in movies of these genres.

Lastly, we can also see that the number of genres for each actor varies from 16 to 10. This suggests that the actors with higher numbers of genres have acted in movies of diverse genres, which may have contributed to their high closeness centrality.

Weighted closeness Subgraph 1

Weighted closeness can be more appropriate than unweighted closeness in certain scenarios. For example, if we are modeling a social network where some connections are stronger (e.g. close friendships) than others (e.g. casual acquaintances), weighted closeness can give us a better sense of who is most central in the network

In [ ]:
# Filter the dataframe by subgraph_num = 0
subgraph_df = df_with_genres[df_with_genres['subgraph_num'] == 0]

# Sort the filtered dataframe by closeness in descending order and get the top actor
top_actor = subgraph_df.sort_values(by='closeness_weight', ascending=False).head(1)

# Print the top actor with their Closeness, name, number of movies, main genre, and number of genres participated in
print("Top actor in subgraph 0:\n", top_actor[['closeness_weight', 'ActorName', 'movies_95_04', 'main_genre']])
Top actor in subgraph 0:
        closeness_weight           ActorName  movies_95_04 main_genre
10412          0.946299  Jackson, Samuel L.            97      Drama
In [ ]:
# Filter the dataframe by subgraph_num = 0
subgraph_df = df_with_genres[df_with_genres['subgraph_num'] == 0]

# Sort the filtered dataframe by closeness in descending order and get the top actor
top_actor = subgraph_df.sort_values(by='closeness_weight', ascending=False).head(20)

top_actor = top_actor[['id', 'ActorName','movies_95_04','main_genre','closeness_weight','neighbors']]

top_actor.head(20)
Out[ ]:
id ActorName movies_95_04 main_genre closeness_weight neighbors
10412 n1529 Jackson, Samuel L. 97 Drama 0.946299 [1, 8, 48, 67, 80, 100, 116, 161, 168, 177, 25...
9624 n1459 Cruise, Tom 46 Music 0.935858 [8, 12, 48, 67, 168, 256, 269, 456, 604, 617, ...
8119 n3268 Berry, Halle 63 Family 0.933481 [67, 168, 173, 231, 256, 269, 272, 388, 411, 4...
4524 n701 Hanks, Tom 75 Family 0.932165 [8, 65, 67, 168, 177, 211, 231, 249, 256, 306,...
1090 n689 Schwarzenegger, Arnold 70 Family 0.930866 [12, 33, 168, 177, 216, 251, 256, 269, 291, 30...
1072 n4427 Spielberg, Steven 99 Family 0.927778 [8, 48, 67, 116, 161, 168, 177, 256, 293, 334,...
3542 n2674 Lopez, Jennifer (I) 68 Music 0.925982 [42, 62, 67, 72, 116, 123, 168, 174, 204, 211,...
5832 n3142 Ford, Harrison (I) 51 Thriller 0.925373 [48, 80, 97, 116, 161, 168, 177, 256, 311, 456...
9655 n3213 Goldberg, Whoopi 109 Comedy 0.924991 [8, 48, 67, 116, 211, 245, 256, 297, 343, 473,...
13804 n558 Stiller, Ben 66 Comedy 0.924385 [42, 67, 161, 168, 256, 308, 330, 343, 440, 45...
3588 n503 Diaz, Cameron 59 Drama 0.924102 [48, 67, 123, 168, 216, 256, 272, 306, 308, 33...
10169 n3235 Travolta, John 63 Drama 0.923801 [8, 67, 80, 168, 216, 256, 272, 349, 473, 530,...
14799 n546 Williams, Robin (I) 72 Comedy 0.922333 [17, 48, 67, 123, 161, 211, 256, 258, 272, 291...
8534 n574 Kidman, Nicole 54 Family 0.918881 [67, 89, 161, 168, 256, 272, 348, 696, 708, 72...
708 n3907 Myers, Mike (I) 58 Comedy 0.917589 [48, 67, 211, 216, 256, 330, 388, 544, 604, 77...
16433 n2724 Welker, Frank 159 Family 0.916674 [127, 158, 283, 334, 335, 360, 454, 478, 501, ...
1912 n465 Nicholson, Jack 35 Drama 0.915593 [8, 67, 116, 123, 211, 256, 272, 544, 582, 617...
2198 n2721 Bennett, Jeff (I) 128 Family 0.913078 [127, 278, 318, 335, 360, 454, 567, 584, 663, ...
4905 n697 Sandler, Adam (I) 54 Comedy 0.910286 [161, 306, 330, 388, 544, 708, 732, 825, 869, ...
15694 n733 Rock, Chris (I) 62 Comedy 0.910016 [33, 48, 216, 256, 297, 306, 308, 330, 334, 34...

The difference is the ranking order, which might have favored certain actors that have more closer connections than others. Therefore, it appears that the weighted version is giving more importance to the network structure (e.g. how actors are connected) than the unweighted version.

In summary, the conclusion that can be drawn is that the weighted version of closeness centrality is taking into account the network structure while the unweighted version is not.

9.Comunity detection

In [ ]:
# Find communities using the Louvain method
communities = largest_subgraph.community_multilevel()

# Set the color of each vertex based on the community it belongs to
palette = ig.ClusterColoringPalette(len(communities))
vertex_colors = [palette.get(i) for i in communities.membership]


# Alternatively, you can also set the size and layout of the plot
layout = largest_subgraph.layout('fr')
ig.plot(largest_subgraph, '/content/drive/MyDrive/communities_subgraph.png', vertex_color=vertex_colors, layout=layout, bbox=(800, 800))

image.png

Community structure based on the multilevel algorithm of Blondel et al.

This is a bottom-up algorithm: initially every vertex belongs to a separate community, and vertices are moved between communities iteratively in a way that maximizes the vertices' local contribution to the overall modularity score. When a consensus is reached (i.e. no single move would increase the modularity score), every community in the original graph is shrank to a single vertex (while keeping the total weight of the adjacent edges) and the process continues on the next level. The algorithm stops when it is not possible to increase the modularity any more after shrinking the communities to vertices.

The identification of communities provide valuable insights into the underlying structure and organization of the actor's network. The communities reveal groups of nodes that are more closely related to each other. Communities can also reveal patterns of influence or information flow within a network, where nodes within a community may be more likely to influence or receive information from other nodes within the same community.